- 浏览: 275290 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
java老大爷:
技术扶持 技术交流 汇聚程序员精英 群里有马士兵2017 ...
大数据数据 -
yeruowei:
遇到同样的问题,特意登录点赞
导入数据库时出现ORA-01435: 用户不存在 -
1017974387:
特意登陆来给你赞。。。。。。
导入数据库时出现ORA-01435: 用户不存在 -
sgy1103:
您好:看了苯苯熊家庭记帐注册码破解很羡慕。我在用,不过换电脑后 ...
笨笨家庭记账本—破解 -
shellbye:
居然真是这个原因。。。哈哈
maven设置中ERROR: JAVA_HOME is set to an invalid directory
根据自己的错误和解决,总的归类出来啦:
1.我们在插入的类型不匹配,比如数据库里面是数字,我们用日期类型去填充.
2.我们忘数据库中插入的时候,为空的时候不要默认成null,这样数据库就不会出现这个问题啦.
3我花啦几个小时弄出来的问题
create or replace trigger CMS_TRG_MAT_STOR_PRICE
after insert or update
on cms_bdb_mat_erp
for each row
declare
v_mat_sid cms_bdb_mat_erp.sid%type;
v_mat_createdt cms_bdb_mat_erp.created_dt%type;
v_mat_createby cms_bdb_mat_erp.created_by%type;
v_mat_version cms_bdb_mat_erp.version%type;
v_mat_updatedt cms_bdb_mat_erp.updated_dt%type;
v_mat_updateby cms_bdb_mat_erp.updated_by%type;
v_mat_code cms_bdb_mat_erp.mat_code%type;
v_mat_desc cms_bdb_mat_erp.mat_desc%type;
v_mat_price cms_bdb_mat_erp.unit_price%type;
v_mat_count cms_bdb_mat_erp.real_num%type;
v_mat_cost_center_code cms_bdb_mat_erp.cost_center_code%type;
v_mat_cost_center_desc cms_bdb_mat_erp.cost_center_desc%type;
v_mat_code1 cms_bdb_mat_erp.mat_code%type;
v_mat_price1 cms_bdb_mat_erp.UNIT_PRICE%type;
v_mat_count1 cms_bdb_mat_erp.REAL_NUM%type;
begin
if inserting then
v_mat_sid :=:new.sid;
v_mat_createdt :=:new.CREATED_DT;
v_mat_createby :=:new.CREATED_BY;
v_mat_version :=:new.VERSION;
v_mat_updatedt :=:new.UPDATED_DT;
v_mat_updateby :=:new.UPDATED_BY;
v_mat_code :=:new.mat_code;
v_mat_desc :=:new.mat_desc;
v_mat_price :=:new.unit_price;
v_mat_count :=:new.REAL_NUM;
v_mat_cost_center_code :=:new.cost_center_code;
v_mat_cost_center_desc :=:new.cost_center_desc;
merge into CMS_BDB_MAT_STOR t1
using (select v_mat_sid SID,v_mat_createdt CREATED_DT,v_mat_createby CREATED_BY,v_mat_version VERSION,v_mat_updatedt UPDATED_DT, v_mat_updateby UPDATED_BY, v_mat_code MAT_CODE,v_mat_desc MAT_DESC,v_mat_count STOR_COUNT,v_mat_price PRICE,v_mat_cost_center_code COST_CENTER_CODE,v_mat_cost_center_desc COST_CENTER_DESC from dual) t2
on (t1.mat_code = t2.mat_code)
when matched then
update set STOR_COUNT=t1.STOR_COUNT+v_mat_count,PRICE=(v_mat_price*v_mat_count+t1.STOR_COUNT*t1.PRICE)/(v_mat_count+t1.STOR_COUNT)
when not matched then
insert values(t2.sid,t2.created_dt,t2.created_by,t2.version,t2.updated_dt,t2.updated_by,t2.mat_code,t2.mat_desc,t2.stor_count,t2.price,t2.cost_center_code,t2.cost_center_desc);
elsif updating then
v_mat_code1 :=:old.mat_code;
v_mat_price1 :=:old.UNIT_PRICE;
v_mat_count1 :=:old.REAL_NUM;
v_mat_sid :=:new.sid;
v_mat_createdt :=:new.CREATED_DT;
v_mat_createby :=:new.CREATED_BY;
v_mat_version :=:new.VERSION;
v_mat_updatedt :=:new.UPDATED_DT;
v_mat_updateby :=:new.UPDATED_BY;
v_mat_code :=:new.mat_code;
v_mat_desc :=:new.mat_desc;
v_mat_price :=:new.UNIT_PRICE;
v_mat_count :=:new.REAL_NUM;
v_mat_cost_center_code :=:new.cost_center_code;
v_mat_cost_center_desc :=:new.cost_center_desc;
update CMS_BDB_MAT_STOR t3 set STOR_COUNT=t3.STOR_COUNT-v_mat_count1,PRICE=(t3.STOR_COUNT*t3.PRICE-v_mat_price1*v_mat_count1)/(t3.STOR_COUNT-v_mat_count1) where t3.mat_code=v_mat_code1 and ((t3.STOR_COUNT-v_mat_count1)<>0);
delete from CMS_BDB_MAT_STOR t3 where t3.mat_code=v_mat_code1 and ((t3.STOR_COUNT-v_mat_count1)=0);
merge into CMS_BDB_MAT_STOR t1
using (select v_mat_sid SID,v_mat_createdt CREATED_DT,v_mat_createby CREATED_BY,v_mat_version VERSION,v_mat_updatedt UPDATED_DT, v_mat_updateby UPDATED_BY, v_mat_code MAT_CODE,v_mat_desc MAT_DESC,v_mat_price PRICE,v_mat_count STOR_COUNT,v_mat_cost_center_code COST_CENTER_CODE,v_mat_cost_center_desc COST_CENTER_DESC from dual) t2
on (t1.mat_code = t2.mat_code)
when matched then
update set STOR_COUNT=t1.STOR_COUNT+v_mat_count,PRICE=(v_mat_price*v_mat_count+t1.STOR_COUNT*t1.PRICE)/(v_mat_count+t1.STOR_COUNT)
when not matched then
insert values(t2.sid,t2.created_dt,t2.created_by,t2.version,t2.updated_dt,t2.updated_by,t2.mat_code,t2.mat_desc,t2.stor_count,t2.price,t2.cost_center_code,t2.cost_center_desc);
end if;
end CMS_TRI_MAT_STOR_PRICE;
这个是因为原表数据项大于现在的数据项.
1.我们在插入的类型不匹配,比如数据库里面是数字,我们用日期类型去填充.
2.我们忘数据库中插入的时候,为空的时候不要默认成null,这样数据库就不会出现这个问题啦.
3我花啦几个小时弄出来的问题
create or replace trigger CMS_TRG_MAT_STOR_PRICE
after insert or update
on cms_bdb_mat_erp
for each row
declare
v_mat_sid cms_bdb_mat_erp.sid%type;
v_mat_createdt cms_bdb_mat_erp.created_dt%type;
v_mat_createby cms_bdb_mat_erp.created_by%type;
v_mat_version cms_bdb_mat_erp.version%type;
v_mat_updatedt cms_bdb_mat_erp.updated_dt%type;
v_mat_updateby cms_bdb_mat_erp.updated_by%type;
v_mat_code cms_bdb_mat_erp.mat_code%type;
v_mat_desc cms_bdb_mat_erp.mat_desc%type;
v_mat_price cms_bdb_mat_erp.unit_price%type;
v_mat_count cms_bdb_mat_erp.real_num%type;
v_mat_cost_center_code cms_bdb_mat_erp.cost_center_code%type;
v_mat_cost_center_desc cms_bdb_mat_erp.cost_center_desc%type;
v_mat_code1 cms_bdb_mat_erp.mat_code%type;
v_mat_price1 cms_bdb_mat_erp.UNIT_PRICE%type;
v_mat_count1 cms_bdb_mat_erp.REAL_NUM%type;
begin
if inserting then
v_mat_sid :=:new.sid;
v_mat_createdt :=:new.CREATED_DT;
v_mat_createby :=:new.CREATED_BY;
v_mat_version :=:new.VERSION;
v_mat_updatedt :=:new.UPDATED_DT;
v_mat_updateby :=:new.UPDATED_BY;
v_mat_code :=:new.mat_code;
v_mat_desc :=:new.mat_desc;
v_mat_price :=:new.unit_price;
v_mat_count :=:new.REAL_NUM;
v_mat_cost_center_code :=:new.cost_center_code;
v_mat_cost_center_desc :=:new.cost_center_desc;
merge into CMS_BDB_MAT_STOR t1
using (select v_mat_sid SID,v_mat_createdt CREATED_DT,v_mat_createby CREATED_BY,v_mat_version VERSION,v_mat_updatedt UPDATED_DT, v_mat_updateby UPDATED_BY, v_mat_code MAT_CODE,v_mat_desc MAT_DESC,v_mat_count STOR_COUNT,v_mat_price PRICE,v_mat_cost_center_code COST_CENTER_CODE,v_mat_cost_center_desc COST_CENTER_DESC from dual) t2
on (t1.mat_code = t2.mat_code)
when matched then
update set STOR_COUNT=t1.STOR_COUNT+v_mat_count,PRICE=(v_mat_price*v_mat_count+t1.STOR_COUNT*t1.PRICE)/(v_mat_count+t1.STOR_COUNT)
when not matched then
insert values(t2.sid,t2.created_dt,t2.created_by,t2.version,t2.updated_dt,t2.updated_by,t2.mat_code,t2.mat_desc,t2.stor_count,t2.price,t2.cost_center_code,t2.cost_center_desc);
elsif updating then
v_mat_code1 :=:old.mat_code;
v_mat_price1 :=:old.UNIT_PRICE;
v_mat_count1 :=:old.REAL_NUM;
v_mat_sid :=:new.sid;
v_mat_createdt :=:new.CREATED_DT;
v_mat_createby :=:new.CREATED_BY;
v_mat_version :=:new.VERSION;
v_mat_updatedt :=:new.UPDATED_DT;
v_mat_updateby :=:new.UPDATED_BY;
v_mat_code :=:new.mat_code;
v_mat_desc :=:new.mat_desc;
v_mat_price :=:new.UNIT_PRICE;
v_mat_count :=:new.REAL_NUM;
v_mat_cost_center_code :=:new.cost_center_code;
v_mat_cost_center_desc :=:new.cost_center_desc;
update CMS_BDB_MAT_STOR t3 set STOR_COUNT=t3.STOR_COUNT-v_mat_count1,PRICE=(t3.STOR_COUNT*t3.PRICE-v_mat_price1*v_mat_count1)/(t3.STOR_COUNT-v_mat_count1) where t3.mat_code=v_mat_code1 and ((t3.STOR_COUNT-v_mat_count1)<>0);
delete from CMS_BDB_MAT_STOR t3 where t3.mat_code=v_mat_code1 and ((t3.STOR_COUNT-v_mat_count1)=0);
merge into CMS_BDB_MAT_STOR t1
using (select v_mat_sid SID,v_mat_createdt CREATED_DT,v_mat_createby CREATED_BY,v_mat_version VERSION,v_mat_updatedt UPDATED_DT, v_mat_updateby UPDATED_BY, v_mat_code MAT_CODE,v_mat_desc MAT_DESC,v_mat_price PRICE,v_mat_count STOR_COUNT,v_mat_cost_center_code COST_CENTER_CODE,v_mat_cost_center_desc COST_CENTER_DESC from dual) t2
on (t1.mat_code = t2.mat_code)
when matched then
update set STOR_COUNT=t1.STOR_COUNT+v_mat_count,PRICE=(v_mat_price*v_mat_count+t1.STOR_COUNT*t1.PRICE)/(v_mat_count+t1.STOR_COUNT)
when not matched then
insert values(t2.sid,t2.created_dt,t2.created_by,t2.version,t2.updated_dt,t2.updated_by,t2.mat_code,t2.mat_desc,t2.stor_count,t2.price,t2.cost_center_code,t2.cost_center_desc);
end if;
end CMS_TRI_MAT_STOR_PRICE;
这个是因为原表数据项大于现在的数据项.
发表评论
-
java socket服务器端与其他语言的通讯
2013-05-15 17:20 1020首先说下背景: 项目是一个物资计量系统,大致的1:ja ... -
JAVA多线程实现和应用总结
2012-09-13 08:09 1191最近在做代码优化时学习和研究了下JAVA多线程的使用,看了菜鸟 ... -
navicat10.0.* 注册码
2012-09-06 21:17 1057NAVD-IO5R-4VGM-TIZD (试过英文版,有用) ... -
mysql error 1366
2012-09-06 20:56 923出现error1366,是字符集的问题,设置为gbk就好啦, -
Unbound classpath variable: 'M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar' in proje
2012-09-06 09:44 3822在用eclipse管理项目的时候,出现Unbound clas ... -
Unrecognized Windows Sockets error: 0: JVM_Bind 异常解决办法
2012-08-27 13:25 1853java.net.SocketException: Unrec ... -
第三方类库
2012-08-27 09:27 873工程构建的时候应该具备的一些组件 -
weblogic手册
2012-08-14 08:12 1264重启weblogic 1、查看weblogic启动进程(节点1 ... -
iBATIS中statement ID命名冲突
2012-08-14 08:14 1681在用iBaTIS开发软件时,需要写很多sqlmap X ... -
eclips加载
2011-12-22 16:23 902eclips加载 web插件http://download.e ... -
一个struts2+json+jquery的问题
2011-05-18 11:17 1192问题比较简单,但是错乱的神经让我浪费啦一早晨. 1:配置环境 ... -
ibatis数组参数的设置
2011-05-17 22:39 2868<delete id="delete" ... -
自定义类型
2011-05-17 09:09 1169public class JsonNodeType exten ... -
风雨20年:我所积累的20条编程经验
2011-05-15 20:18 806原文作者乔纳森·丹尼 ... -
rmi
2011-05-15 19:54 832RmiMonitorService.java package ... -
ajax + struts2 + xml
2011-05-15 19:36 1083Jquery 发送ajax请求,action 或servlet ... -
http通用请求测试
2011-05-15 17:55 1418晕要发到博客上频道的怎么发到了这里。。。管理员能帮忙移动一下吗 ... -
关于多线程
2011-05-14 22:26 1070多线程和单线程的我个人认为,就是一个顺序的问题,,因为 ... -
注解POJO比不上使用配置文件的地方
2011-05-14 08:55 9511、跨数据库,POJO将无法公用 使用注解方式的POJO,将 ... -
hibernate in
2011-05-08 02:20 1308一个学科表(Field), ...
相关推荐
4. **字符集兼容性**:如果源数据库和目标数据库的字符集不同,则需要在导入过程中进行相应的转换。 5. **依赖性处理**:对于复杂的数据库环境,需要特别注意处理依赖关系,比如存储过程、触发器等。 #### 总结 ...
5. 表达式索引:在创建索引时可以包含函数或表达式,加速复杂查询。 五、实用技巧 1. 使用EXPLAIN PLAN分析查询性能,找出可能的瓶颈。 2. 了解并使用绑定变量来避免SQL注入,提高安全性。 3. 定期维护索引,如重建...
- 如果是偶尔出现的问题,可以在服务端的协议配置文件 `PROTOCOL.ORA` 中增加一行配置来尝试解决:`TCP.NODELAY=YES`。 - 如果问题是由于客户端与服务端的字符集不一致引起的,则需要确保双方的字符集设置一致。 ...
5. **异常处理**:在PL/SQL编程中,可以使用`BEGIN...EXCEPTION...END`块来捕获和处理异常,以增强程序的健壮性。例如,使用`WHEN OTHERS THEN`子句可以捕获所有未明确定义的异常,并进行相应的处理。 6. **常见...
4. **ORA-01722:无效数字**:当尝试将非数字字符转换为数字时,会出现这个错误。确保数据类型匹配,并正确处理输入数据。 除此之外,Oracle spool功能是一个实用工具,常用于批量输出SQL查询结果到文件。通过spool...
7. **备份与恢复**:在进行数据库备份或恢复时,可能会遇到ORA-01113(文件需要检查)或ORA-01114(无法打开在线日志,已达到最大限制)等错误,这些问题需要对数据库的备份和恢复策略进行检查和调整。 8. **PL/SQL...
Oracle数据库在运行过程中可能会遇到各种错误,这些错误通常以特定的错误代码表示,如ORA-12571、ORA-01000、ORA-01545、ORA-0165x、ORA-01555、ORA-04031、ORA-04091、ORA-01242和ORA-01113。这些错误涉及数据库...
- 热备份:在数据库运行时进行的备份,使用RMAN(Recovery Manager)工具。 - 数据泵(EXPDP/IMPDP):用于导出导入数据,支持表、用户或整个数据库。 9. **性能优化**: - SQL优化:使用EXPLAIN PLAN分析执行...
- **DDL触发器**:在执行DDL(数据定义语言)命令如CREATE、ALTER、DROP等时触发。 - **最终用户登录/注销触发器**:当用户登录或退出数据库时触发。 - **系统错误触发器**:当系统遇到特定错误时触发。 通过这些...
在Oracle数据库中,Java函数、存储过程和触发器允许开发者利用Java的强大功能来处理数据库操作。这种方式结合了SQL的高效数据处理与Java的面向对象编程能力,为开发复杂的企业级应用提供了灵活性。以下是对这些概念...
- Oracle数据库还支持一些非预定义的异常,如`ORA-01403`(没有找到数据)等。 - **用户自定义的例外** - 用户可以根据需要定义自己的异常类型。 - 示例: ```plsql DECLARE e_custom_exception EXCEPTION; ...
Oracle 11g是Oracle公司推出的数据库管理系统,它在企业级数据存储、管理和分析方面具有广泛的应用。本教程“Oracle 11g 从入门到精通”旨在帮助初学者掌握Oracle 11g的核心概念和技术,逐步提升为熟练的数据库管理...
在使用Oracle数据库时,管理员和开发人员经常会遇到各种错误代码,其中之一就是"ORA-00988 missing or invalid password"。这个错误通常发生在尝试创建新用户或者修改用户密码时,特别是当密码以数字开头时。 在...
- 在 `init.ora` 文件中设置: - `log_archive_start = true` - 重启数据库: - `RESTART DATABASE` #### 16. 如何获取正在使用的用户? - **查询命令:** - `SELECT username FROM v$session;` #### 17. ...
19. **ORA-01403未找到数据之解决方法** - **方法**: 检查查询条件或使用NULL值处理。 - **应用场景**: 异常处理。 20. **PL/SQL细粒度事务控制** - **解释**: 控制事务的粒度,提高并发性能。 - **应用场景**:...
在EXP/IMP过程中我们需要注意四个字符集的参数:导出端的客户端字符集,导出端数据库字符集,导入端的客户端字符集,导入端数据库字符集。 我们首先需要查看这四个字符集参数。 查看数据库的字符集的信息: SQL> ...
5. **联接操作**:在Ora9i中,有多种类型的联接,如INNER JOIN,LEFT JOIN,RIGHT JOIN和FULL JOIN,它们用于合并来自两个或更多表的数据。 6. **子查询**:子查询是嵌套在其他SQL语句中的查询,可以用于比较、筛选...
- 触发器和事件:理解触发器的工作原理,如何定义和管理触发器,以及如何利用触发器实现自动化的业务规则。 5. **其他进阶知识点** - 数据库安全:包括用户权限管理、角色、表和列级的安全性、审计和访问控制。 ...