0
我對PL/SQL(特別是使用動態SQL)頗爲陌生,我創建了這個函數,它運行/編譯沒有任何錯誤或警告,但是當我運行功能....幫助使用動態PL/SQL,函數拋出異常
SELECT schema.fa_awd_for_term('0000000','2003SPRING',NULL,NULL)
FROM DUAL;
....它拋出一個異常
我對PL/SQL(特別是使用動態SQL)頗爲陌生,我創建了這個函數,它運行/編譯沒有任何錯誤或警告,但是當我運行功能....幫助使用動態PL/SQL,函數拋出異常
SELECT schema.fa_awd_for_term('0000000','2003SPRING',NULL,NULL)
FROM DUAL;
....它拋出一個異常
取出異常處理程序,你會發現什麼錯誤實際上是。你不應該明確地處理意外的異常。
也可以使用綁定變量例如更改此設置:
|| 'substr(ta_xxxx_id,1,7) = ''sssssss'' '
|| 'and substr(ta_xxxx_id,instr(ta_xxxx_id,''*'',1,2)+1) = ''aaaa'' '
到
|| 'substr(ta_xxxx_id,1,7) = :sssssss '
|| 'and substr(ta_xxxx_id,instr(ta_xxxx_id,''*'',1,2)+1) = :aaaa '
然後添加一個using子句的OPEN語句:
OPEN CUR_faawards FOR thequery USING id, v_year;
並刪除代碼替換這些。恐怕你因爲糟糕的桌面設計而被'xxxx'卡住了 - 每年都會有一列?!?!
是的,我知道:(這是設計不佳,我會嘗試這些建議,並回到你的。謝謝你的提示 – Dan 2011-06-09 15:12:34
好吧,我試着移動底部異常(它返回'ER2'),和我得到一個ora-06512,未處理的異常,並且它上面的錯誤是「表或視圖不存在(我已經仔細檢查過我的表名是否準確)這是否給這個問題提供任何提示? – Dan 2011-06-09 15:22:55
它可能是任何但是我懷疑會以ta_xxxx表開始,嘗試添加一些調試消息,例如使用dbms_output.put_line。 – 2011-06-09 15:32:47