oracle sql 问题解决合集

1. ORA-01403:no data found 解决办法

   在一个存储过程中,调用另一个存储过程,其中有一句话是 select a into b from table;
 当查询出来的a没有数据时,这个时候就会抛出这个异常:ORA-01403:no data found .
解决办法:
1.捕获异常,用exception when no_data_found then  处理一下。
2.select count(*) field into var from table where ....
增加一个count(*)即使没有找到数据,也会返回0,而不是null。

2.ORA-12154: TNS: 无法解析指定的连接标识符 解决办法
检查tnsnames.ora 中的配置,空格什么的会引起这个原因。
3.ORA-01652: unable to extend temp segment by 128 in tablespace CZRK_SJJL_TEMP
数据查询量太大,临时表空间不足,优化sql语句。
4.ORA-00904: “BLRQ”: invalid identifier
‘blrq’ 字段没有定义。
5.ORA-01403: 未找到任何数据
ORA-06512: 在 “CZRK_WX.TRI_T_GY_DZCL”, line 7
ORA-04088: 触发器 ‘CZRK_WX.TRI_T_GY_DZCL’ 执行过程中出错

触发器出现这三个错误,查了下触发器中:
select hkjg into v_hkjg from t_gy_ywblhk where ysllsh = :new.ysllsh; 语句没有查询出结果导致 跟第1点相似。
6.ORA-01810: format code appears twice
to_date(‘2006-06-01 18:00:00’ ‘yyyy-mm-dd hh:MM:ss’)
而在Oracle中的日期格式是不区分大小写的,所以 mm 出现了两次。
正确的写法是:
to_date(‘2006-06-01 18:00:00’ ‘yyyy-mm-dd hh:mi:ss’)
7.ora-02437 违反主关键字
建立主键的时候出现这个问题有两个可能:
第一 表里已经有重复数据,删除就行。
第二 表里有主键为空的数据,删除。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值