oracle 01405 提取的值为null,ORA-01405: 提取的列值为 NULL--报错原因及解决方案
報錯信息: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, 'YYYYMMDDHH24MISS'),'NULL'),
NVL(TO_CHAR(RecvTime, 'YYYYMMDDHH24MISS'),'NULL'),
NVL(TO_CHAR(CancelTime, 'YYYYMMDDHH24MISS'),'NULL'),
NVL(CancelStatus,0),
NVL(CancelTaskMaxCount,0),
NVL(CancelTaskCount,0),
NVL(CancelTaskFailedReason,'NULL')
INTO
:strANorRYNO,
:strTaskID,
:nTaskType,
:strSendTime,
:strRecvTime,
:strCancelTime,
:nCancelStatus,
:nCancelTaskMaxCount,
:nCancelTaskCount,
:strCancelTaskFailedReason
FROM NewXCData
WHERE ANorRYNO = :strANorRYNO AND (TaskType = 7 OR TaskType = 8);
總結
以上是生活随笔為你收集整理的oracle 01405 提取的值为null,ORA-01405: 提取的列值为 NULL--报错原因及解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android开机后自动执行shell,
- 下一篇: tomcat访问oracle卡死,tom