此腳本在 PLSQL Developer 版本 14.0.0.1961 中失敗(錯誤ORA-06502: PL/SQL: numeric or value error: character string buffer too small):
declare
v varchar2(32767) := rpad('x',32513,'x');
begin
dbms_output.enable(null);
dbms_output.put_line(v);
end;
/
- 如果 32513 被更高的值替換,它也會失敗。
- 如果將 32513 替換為較低的值,則它可以作業(即列印文本而不會失敗)。
- 在 SQL*Plus 和 Toad 中,它最多適用于 32767(這是預期的)。
- 在 Intellij Idea 中,它最多適用于 32766,對于 32767,它雖然不列印任何內容,但不會引發例外。
我該如何解釋這種行為?32512 似乎是一個有趣的常量(我在一些APEX 問題、關于 blob 的問題中找到了它,并且在JDBC 教程中也提到了它,但我錯過了與所描述問題的任何聯系。)
uj5u.com熱心網友回復:
看起來像是 PL/SQL Developer 的錯誤。
2013 年,他們說他們會修復它:
這有點低級問題,所以他可能需要等到 11.0.0 版本。
你使用哪個版本?
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/371573.html
