proc*c sqlcode=[-1405];sqlerr=[ORA-01405: fetched column value is NULL]解决方法
2013-10-23 15:48
716 查看
指示变量的值,及其代表的含义如下:
0:操作成功
-1:该指示变量对应的宿主变量返回了或插入、更新成了NULL值
-2:从数据库存放数据到对应的宿主变量时,数据超长,并且不能推断出截断了多少字节的长度
>0:在FETHC或SELECT语句时,因数据超长而被截断存放在了对应的宿主变量中,
指示变量存放对应列的长度
如果不用指示变量在SELECT或FETCH语句中将一个NULL值赋给宿主变量时,Oracle会报1405错误。
为了避免这种情况,可以采用两种解决方法:
1. 使用指示变量
2. 调整Pro*C/C++预编译程序proc?的命令行参数,设定MODE=ORACLE DBMS=V8 UNSAFE_NULL=yes
3. NVL函数
select NVL(pay_mode, 0) into :iPayMode from t_acct_process ;
0:操作成功
-1:该指示变量对应的宿主变量返回了或插入、更新成了NULL值
-2:从数据库存放数据到对应的宿主变量时,数据超长,并且不能推断出截断了多少字节的长度
>0:在FETHC或SELECT语句时,因数据超长而被截断存放在了对应的宿主变量中,
指示变量存放对应列的长度
如果不用指示变量在SELECT或FETCH语句中将一个NULL值赋给宿主变量时,Oracle会报1405错误。
为了避免这种情况,可以采用两种解决方法:
1. 使用指示变量
2. 调整Pro*C/C++预编译程序proc?的命令行参数,设定MODE=ORACLE DBMS=V8 UNSAFE_NULL=yes
3. NVL函数
select NVL(pay_mode, 0) into :iPayMode from t_acct_process ;
相关文章推荐
- ORA-24347: Warning of a NULL column in an aggregate function解决方法
- SqlParameter设定的value值为0时、调用的存储过程获取到的值却为null解决方法
- 一个坑:java.sql.ResultSet.getInt==》the column value; if the value is SQL NULL, the value returned is 0
- Column count of mysql.proc is wrong. Expected 20, found 16.解决方法
- SQLSTATE[22003]: Numeric value out of range: 1690 BIGINT UNSIGNED value is out of range解决方法
- Column count of mysql.proc is wrong. Expected 20, found 16.解决方法
- ORA-24347: Warning of a NULL column in an aggregate function解决方法
- ORA-01461: can bind a LONG value only for insert into a LONG column 解决方法
- ORA-01480 trailing null missing from STR bind value 错误解决方法
- oerr ora 000845解决方法是扩大/dev/shm空间
- 出现 DB2 SQL Error: SQLCODE = -798, SQLSTATE = 428C9 错误的原因及解决方法
- db2中自增id违反唯一性约束解决方法(SQLCODE=-803, SQLSTATE=23505)
- java.sql.SQLException: ResultSet is closed解决方法
- 内核中判断返回指针是否错误的方法:使用IS_ERR或者IS_ERR_OR_NULL
- Mysql ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in..的解决方法
- MySQL错误"Out of range value adjusted for column ..."的解决方法
- SQL中sum(),avg()等统计结果为null的解决方法
- Oracle exp EXP-00008 和ORA-01455: converting column overflows integer datatype 的解决方法
- java.sql.SQLException: ORA-00911: 无效字符 解决方法
- DB2中SQLSTATE=57016 SQLCODE=-668,原因码 "7"的解决方法