0

在 SQLPLUS 下执行我的脚本时遇到问题。在 SQL Developer 下它运行良好。

set serveroutput on size 1000000
declare
yyy varchar2(32000):='';
begin
yyy := 'XxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzz';
yyy := yyy || 'XxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzz';
yyy := yyy || 'XxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzzXxxYyyZzz';
dbms_output.put_line(yyy);
end;
/

在 SQLPLUS 下我得到错误:

ORA-06502: PL/SQL: numeric or value error: character to number conversion error ORA-06512: at line 1

任何解决方案如何在 SQLPLUS 下强制运行具有长输出的脚本?我需要输出,因为我将结果假脱机到文件中。

4

1 回答 1

1

您正在针对 Oracle 10g 数据库使用早于 Oracle 10g 的 Oracle 客户端

请在下面找到 ASKTOM 的报价

问题不在运行时,您显然是在针对 10.2 或更高版本的数据库使用旧客户端。数据库代码运行良好

当客户端从数据库中提取字符串时,您遇到了异常。

sqlplus 正在做这样的事情:

a) 调用过程/代码 - 它运行并填充 dbms_output 缓冲区,即包中的一个数组。

b) 然后 sqlplus 调用 dbms_output.GET_LINES 以获取要打印的缓冲输出。这是失败的呼叫。

欲了解更多信息,请参阅

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1011431134399

于 2012-04-25T11:34:25.937 回答