oracle - sql_error_错误

1.invalid number:

本身是字符串格式还要转换成字符串格式

 

2.a non-numeric charactor was found where a numeric was expected :

本身是日期格式还转成日期格式

 

3.column ambiguously defind:

字段含糊不清,几个表中都有,得指定是哪个表的字段

 

4.Character to numeric conversion error

本来是三位数,要转换成两位数,比如273.4转换to_char(273.4,'99.9')成两位数,就会报错

 

 

5. ORA-04063: package body "FAST.PKG_ZCOMMISSIONSTATR" has errors

 方法存储过程出现了错误,之前可以通过编译运行,现在不可以了,一般是表结构,OB,NT出现了改变

 

6. ORA-06508: PL/SQL: 无法找到正在调用  的程序单元

那是OB没有写body

View Code
create or replace type body ob_shareholdersrewardtrack is

  -- Member procedures and functions
  CONSTRUCTOR FUNCTION ob_shareholdersrewardtrack RETURN SELF AS RESULT is
  begin
    return;
  end;

end;

 

7.同样的pkg在这个环境编译(图片中以dev结尾)不通过(卡死,没反应,要结束进程才行),但是在例外一个环境(图片中以orcl结尾)却可以,这是资源环境问题(中午一段时间没弄,下午编译可以了),环境即

 

8.执行pkg时遇到:Oracle ora-00060 等待资源时检测到死锁

执行此sql:select spid,osuser
  from v$session s, v$process p
 where s.paddr = p.addr
   and s.sid in (select sid from v$access where object = 'PKG_SMSSEND_PROC');--记得名字是大写的

然后在服务器上(我的数据库部署在linux系统上)用:kill -9 spid 命令结束进程就可以

 

 

ORA-12801: error signaled in parallel query server P025

                 由于撤销表空间不够,联系数据库服务商

 

ORA-01555: ORA-01555: snapshot too old: rollback segment number 21 with name "_SYSSMU21$" too small  

                 数据库缓冲区太小,联系数据库服务商

 

ORA-01410: invalid ROWID:

                 由于抽取数据过程中,动态数据被删除异致(三个小时前,你已经把数据都收集过来了,由于数据量过大,当任务线程处理到某条数据时已经过了一段,而当前这条数据被别人删除,只能try catch continue 跳过本条数据)

 

ORA-03115: unsupported network datatype or representation:

             1)驱动包版本过低,换成classes12.jar、ojdbc14.jar,对应版本下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html

             2)如果字段类型是binary_double,则取得数据时用rs.getBigDecimal("binary_double_column"),本环境jdk1.7,因为脑残客户,有的表binary_double类型存的是日期如:20131227,有的是存的金额120,rs.getDouble,日期则会是2.0131227E7,金额会正常显示

             3)因为公司系统建立的时间比较早,有一个驱动包是commonlib.jar,其实就是当初对应jdk1.0或1.1的驱动包,导致有的类用的它的,有的类用的ojdbc14.jar,所以之前无论如何都不能解决此异常,我是这样发现这个问题的:Class.forName("oracle.jdbc.driver.OracleDriver");点击OracleDriver的超链接发现他的class是跑到commonlib.jar了,就解决了此问题

 

ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at "SA.SFZH18TO15", line 8

                两种原因:第一,你查询时接受字段太小,比数据库里面对应的字段小,查询时报错

                             第二,你定义的字段太大,比对应的那张表里面的那个字段大,往数据库里面insert时那个字段会报错

                

java.sql.SQLException: Io exception: Connection reset

                连接重置嘛,原因很多种,连接池问题,数据库问题,我们系统采取的措施是尝试连接五次,之后就断掉

 

 

 

user_tab_cols换成ALL_TAB_COLS解决user_tab_cols这个视图只能看到自己账号的表字段结构

posted on 2012-05-30 12:21  lovebeauty  阅读(1801)  评论(0编辑  收藏  举报

导航