跌倒的马铃薯

 

Oracle的一些不常见问题

此帖为我收集的曾经遇到的Oracle报错信息。不断更新中,当然更新一定会很慢,因为我不可能经常遇到不常见的问题。

ora-01789  
查询块具有不正确的结果列数

     这个错误一般在执行表之间的相加(union),相减(minus)等SQL语句时发生。只要将两段SQL语句的列数调整一致就可以解决了。

OCI-22053
 overflow error 

    NET开发中使用微软的System.Data.OracleClients访问ORACLE 数据库时, 如果某字段的精度超出.NET的数据精度,就会发生OCI-22053错误.我个人解决OCI-22053错误溢出的方法是使用Oracle的函数TRUNC其具体的语法格式如下
        TRUNC(number[,decimals])
将length设置为NET允许的长度就OK 了

无法加载DLL(OCI.DLL)

    这个问题出现一般是在新装的Oracle数据库,具体原因不太清楚。解决办法也十分奇怪:首先确认oci.dll是否已经安装到了机器上,如果没有就需要拷贝一个或者重新安装。oci.dll 的默认路径应该是 X:\oracle\ora90\BIN 。然后打开他所在的文件夹的属性->安全,将你访问Oracle的帐户的全部权限取消,然后确定。接着再打开安全把全部权限再选上,最后确定。如果你没有安全选项卡那我就无能为力了。如果你不知道是哪个帐户,那每个帐户都做一次。如果你的权限复选框为不可改,那可以勾选拒绝也一样。Good luck!
 
ORA-01555: Snapshot too old
    这个错误很少见,跟系统设置有关系。实际的问题是对数据库执行操作时,系统的回滚段太小。引起的原因一般是执行SQL语句时间太长,执行过程中有回滚记录的操作太多。解决方法要么是增大数据库回滚段空间,要么更改SQL。

ORA-24338: 未执行语句句柄
    这个问题主要出现在使用数据库游标的时候.当执行存储过程,返回的游标没有打开时,可能会报这个错.
open outCursor for select * from tempTab;
    游标没有打开的情况一般是忘记了写打开游标的语句,也可能是存储过程中执行出错,导致最后游标未打开.

posted on 2006-06-06 14:57  Ivan  阅读(2072)  评论(0编辑  收藏  举报

导航