gpt4 book ai didi

oracle pl/sql 错误 : can't put_line more than 2000 characters

转载 作者:行者123 更新时间:2023-12-02 02:24:50 25 4
gpt4 key购买 nike

有没有其他人注意到 dbms_output.put_line 无法一次打印超过 2000 个字符的现象?

脚本是:

set serveroutput on size 100000;

declare
big_str varchar2(2009);
begin
for i in 1..2009 loop
big_str := big_str||'x';
end loop;

dbms_output.put_line(length(big_str));
dbms_output.put_line(big_str);
end;

/

我将输出复制并粘贴到编辑器 (Notepad++) 中,它告诉我只有 2000 个字符,而不是我认为应该粘贴的 2009。我的一些测试脚本也会发生这种情况 - 仅打印 2000 个字符。

我有一个解决方法可以像这样打印:

dbms_output.put_line(length(big_str));
dbms_output.put_line(substr(big_str,1,1999));
dbms_output.put_line(substr(big_str,2000));

这会向输出添加新行,当您正在使用的文本已预先格式化时,会导致阅读变得困难。

还有人注意到这一点吗?这真的是一个错误还是某种晦涩的功能?有更好的解决方法吗?还有其他相关信息吗?

Oracle 版本是:10.2.0.3.0,使用 PL/SQL Developer(来自 Allround Automation)。

最佳答案

这不是 Oracle 或 put_line 的限制,而是您的 IDE 的限制。

来自 Oracle 文档:http://download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_output.htm#ARPLS036

Rules and Limits

  • The maximum line size is 32767 bytes.
  • The default buffer size is 20000 bytes. The minimum size is 2000 bytes and the maximum is unlimited.

您可以使用 SQL*Plus 对此进行测试。

您看到的 2000 这一事实让我相信您的 IDE 中存在一个设置,将其设置为最小值。

关于oracle pl/sql 错误 : can't put_line more than 2000 characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1767003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com