oracle ora-01403 找不到數據/ ORA-24338: 未執行語句句柄


在運用 insert into 表名() select * from 表名 語句插入多條數據時,如果select * from 表中沒有數據,會爆ora-01403 找不到數據。

解決辦法很容易就是將這個語句復制一下,先計算count(*)如果為0就不執行,如果>0就執行上面的語句。

 

ORA-24338: 未執行語句句柄

 在存儲過程中用到游標的時候,如果沒有執行 open dateset(游標) for v_sql,而進行訪問返回的游標會報錯ORA-24338: 未執行語句句柄。

為什么會沒有執行 ‘open dateset(游標) for v_sql’,那是由於在存儲過程中寫有

exception
  when others then
    begin
      DBMS_OUTPUT.PUT_LINE(SQLCODE || ' : ' || SQLERRM);
    end;
end;  這樣的錯誤處理機制,在遇到類似的  ora-01403 找不到數據等錯誤時,會直接跳到此處執行錯誤處理代碼,所以

‘open dateset(游標) for v_sql’可能被忽略而又進行訪問,也就出現 ORA-24338: 未執行語句句柄了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM