oracle|数据|数据库|异常处理
注意:先用单步调试,找出出错程序语句
<1>未注册XXX动态链接库
(未注册动态链接库文件或者该方法所在的类库不存在)
<2>未将对象设置引用到对象实例
(没有给对象正确赋值,可检查参数值,引用了未初始化的变量)
<3> “myDelegate”是不明确的引用
(同等级别的名字空间节点上出现同名委托)
<4>不支持并行的事务
(新事务未提交或者事务执行不完整,注意,如果提交事务之前存在return语句,那么必须将事务提交放在return之前执行)
<5>ORA: 找不到预期的FROM关键字
(SQL语句中关键字冲突)
(From前面字符未保留空格)
<6>字符串格式不匹配
(Oracle中整数类型参数应用程序中可用字符串代替,但Varchar类型参数在应用程序中必须对应为字符串类型)
(参数转换不正确,参数类型与数据表种字段类型不匹配)
<7>缺少表达式/未找到预期的关键字FROM
(SQL语句错误)
(可用快速监视的方法查看变量的执行情况)
(Oracle中不能用AS关键字给表别名,可去掉AS)
(转换错误,例如char应为to_char,详情请参阅相关Oracle技术资料)
<7>SQL命令未正确结束
(缺少括号或其他标示符)
<8>CURRENT TIMESTAMP
(1)改为:CURRENT_TIMESTAMP,即可
(2)表别名只需: select * from tableName A 即可,不能写成: select * from tablename AS A
(3)to_char(char), to_number(int), to_date(date)
<9>dual 代替 IDM DB2中的SYSIBM.SYSDUMMY1, 用to_date代替timestamp
为组合框指定数据源的时候,要把数据源放在前面,例如 cmb.DataSource = datasource; cmb.DisplayNumber = ...
<10>调用存储过程时出错,参数个数或者类型错误
(检查参数名称、值、类型、长度、传出方向是否和存储过程参数一致,须仔细检查,不然可能一处出错,全盘皆错。鄙人曾经碰到过一次,36个参数要传入存储过程,只因为一个参数名出错,结果系统老提示以上异常 。
<11>执行存储过程中,插入的列过大!
(参数长度太小,或者被引用的字符串没有去掉空格)
<12>给CURRENT_TIMESTAMP 加上N个小时
select CURRENT_TIMESTAMP + N/24 from dual
<12>给组合框指定数据源,所有属性都正常,但是就是无法正常显示!
详见:一个罕见C#异常的解决过程
<13>缺乏应有的引用和程序集,奇怪,我明明添加了呀?
(1)系统内部错误,关掉开发环境,重启动即可!
(2)引用名发生大小写错误!
<14>"Control"是不明确的引用
(1)在系统感知的名字空间下,出现名字相同的类。比如:System.Windows.Forms.TextBox, MyTest.TextBox
(2)详细指定名字空间全称即可,不能以TextBox引用,因为系统不知道你要引用的是哪个TextBox
<15>日期格式图片在转换整个输入字符串之前结束
(1)这通常因为程序中的诸如此类的语句:cast(djrq as char(10))||'' ''||cast(djsj as char(10))
(2)应改为: to_date(to_char(djrq,'yyyy-mm-dd')||' '||to_char(djsj,'hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
<16>无法处理的服务名
(1)这通常是因为连接字符串错误,或者应用程序所在的文件夹名称错误,导致无法登录Oracle服务器。
例如如果文件夹命名为aaa(dd)等诸如此类含有非字母和数字组合的名称就会因发此异常,特别注意。