oracle存儲過程中ORA-01403: 未找到數據 問題解決方法

錯誤提示:ORA-01403: 未找到數據

產生原因:當查詢不到數據時,且把查詢結果注入到定義的變量裏面

解決方法:

            1.跳出此次存儲過程: 可以寫個錯誤提示:

                 when not_data_found then --後面一般接錯誤的數據提示消息

            2.不跳出存儲過程: 

                由於錯誤的根本原因是數據不存在,導致的空值問題,所以可以根據問題的原理得到對應的解決方法。設置一個變量tempSize,類型爲number,每次在查詢注入前,執行一次 select count(1) into tempSize from table,然後判斷tempSize是否大於1,如果大於1再執行查詢賦值給其他變量,這樣子就一定不會報找不到數據錯誤,因爲count(1)就算找不到 值爲0 ,可以賦值給tempSize,這樣子就避免了空值問題.

分析:倆種方法都能解決空值問題,不過第二張方法更好,不用跳出存儲過程,實際上也是,因爲存儲過程大多數是用於更新數據用的,不能因爲一個數據找不到,導致大量數據無法更新,所以推薦使用第二種方法解決

                

           

             


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章