报错信息:ORA-01405: 提取的列值为 NULL
问题出现原因:形如 SELECT a INTO :a FROM NewXCData WHERE a = 'test';
如果a的值为空,则会报此错误。
问题解决方案: SELECT NVL(a,'default') INTO :a FROM NewXCData WHERE a = 'test';
注意: 不能因为a本来就为空,而作如下二种赋值:
1、SELECT NVL(a,'') INTO :a FROM NewXCData WHERE a = 'test';
2、SELECT NVL(a,NULL) INTO :a FROM NewXCData WHERE a = 'test';
若用此方法,依然会报此错误。个中原因,自己体会。
下面是一个小例子,仅供参考:
EXEC SQL SELECT
ANorRYNO,
NVL(TaskID,0),
NVL(TaskType,0),
NVL(TO_CHAR(SendTime, 'YYYYMM
ANorRYNO,
NVL(TaskID,0),
NVL(TaskType,0),
NVL(TO_CHAR(SendTime, 'YYYYMM