在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下强制运行具有长输出的脚本?我需要输出,因为我将结果假脱机到文件。
答案 0 :(得分:1)
您正在使用Oracle 10g以上的Oracle客户端来对抗Oracle 10g数据库
请在下面找到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