1. ORA-00937: 不是单组分组函数 和 不是group by表达式
--select count(corp_tn),state_code from t_oa_main where corp_tn='jiayuanshu' and oa_code='QJ_PT_0005_2017_3_0004' group by corp_tn; --不是group by表达式
--select count(corp_tn),state_code from t_oa_main where corp_tn='jiayuanshu' and oa_code='QJ_PT_0005_2017_3_0004' --ORA-00937: 不是单组分组函数
--select count(corp_tn),state_code from t_oa_main where corp_tn='jiayuanshu' and oa_code='QJ_PT_0005_2017_3_0004' group by state_code; --ok
2. ORA-02296:无法启用(....)找到空值
原因:①:表中本来有数据 ②添加一个列为主键列 导致新添加的主键列为空,这样就会报这样的错
解决方案:要么就是将表中的数据全部删除,要么,先添加列,然后在列中添加数据,之后在设置为主键
3. ORA-12991:引用的列出于多列约束条件
原因:①:删除一个主键列
解决方案:先将撤销这个列是主键列,应用,之后再删除这个列
4. ORA-01449:列包含NULL值;无法将其变更为NOT NULL
原因:①:添加一个列,并且同时将列设置为主键,应用
解决方案:先添加这个列,应用,之后在设置为主键,可能会报 2 的错误,然后解决方案也有了
5. ORA-02298:无法验证(...)-未找到父项关键字
原因:①:外键引用的那个表中的列没有对应的数据
②:你要插入的表A里,有外键连接到另一个表B的主键,你在表A的外键列插入的值,在表B的主键列找不到就不能插入。
6. ORA-00054:资源正忙,但指定以NOWAIT方式获取资源,或者超时失效
原因:关了,重启!
7. java.sql.SQLException: 无效的列索引,
①:查?号有没有问题
②:查返回值有没有对上
8.
java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'P_OA_PERS_SELECT' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
原因:传过去多了一个oderlist,忘了在存储过程中添加orderlist参数
9. ORA-01006: 绑定变量不存在
?号之间没有逗号
10.ORA-01861: 文字与格式字符串不匹配
Java中字段的类型与传到oracle存储过程的字段类型不一致
11. 索引中丢失 IN 或 OUT 参数:: 20
参数个数不对,
12. 调用 'P_OUTCORP_PAGESELECT' 时参数个数或类型错误
参数个数和类型不对
13. ORA-00918:未明确定义列
--这么执行没有问题
select t.id,t.kind_code,t.kind_upcode,t.kind_level,t.kind_name,t.kind_fname,t1.kind_name from t_kind t left join t_kind t1 on t.id=t1.id and t.kind_upcode = t1.kind_code where t.id= '2013'
--报错:a.*(红)报:未明确定义列:原因是,有两个kind_name 导致出了问题,
select a.*,rownum rn from( select t.id,t.kind_code,t.kind_upcode,t.kind_level,t.kind_name,t.kind_fname,t1.kind_name from t_kind t left join t_kind t1 on t.id=t1.idand t.kind_upcode = t1.kind_code where t.id= '2013') a
14. 调用存储过程时,报查询异常null,空指针异常
cs.execute(); //java.sql.CallableStatement 我的原因是sql语句中有乱码,把乱码改掉就好了
15. Java.sql.SQLException: 无法转换为内部表示
很可能是因为数据库某字段的类型出错了,
16. 调用存储过程报,java.lang.NullPointerException
//调用存储过程报空指针异常 ,原因是存储过程中sql有乱码,eg:select a,b,c from t 这个sql中a字段名为乱码 ,在pl/sql中得到的cursor不会报错,并且能得到结果,但是到了java这边接收到cursor时报错了,
callableStatement .execute();
在pl/sql中测试存储过程,cursor中字段如下图
在java中执行 callableStatement .execute(); 这条语句就会报错,报空指针异常