PL/SQL 中 dbms_output.put_line 輸出字符長度限制的問題


 

for i in 1..5 loop
  dbms_output.put_line(substr(s_sql,1900*(i-1)+1,1900));
end loop;

這幾天大量的在存儲過程中拼接動態sql語句,測試的時候需要將拼接的sql顯示出來,在sqlserver中,可以方便的用print 將整個sql輸出,

但oracle中,遇到 下面這樣的提示:

ORA-06502: PL/SQL: 數字或值錯誤 :  字符串緩沖區太小
ORA-06512: 在 "SYS.DBMS_OUTPUT", line 151
ORA-06512: 在 line 2

增大變量的長度或增大dbms緩沖區的大小都不能解決問題,因此就有了最上面的解決辦法,通過切分字符串循環輸出的方式, 將過長的動態語句輸出出來。

 


免責聲明!

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



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