• Oracle中遇到的错误


    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();  这条语句就会报错,报空指针异常

  • 相关阅读:
    实例讲解Springboot以Repository方式整合Redis
    Spark join 源码跟读记录
    数理统计与参数估计杂记
    常见的距离算法和相似度(相关系数)计算方法
    生成模型(Generative Model)与判别模型(Discriminative Model)
    Java 积累复习用
    RangePartitioner 实现简记
    Spark常见问题汇总
    2016年终总结
    学习资料库
  • 原文地址:https://www.cnblogs.com/an5211/p/6772490.html
Copyright © 2020-2023  润新知