create or replace procedure sp_test(strInput in varchar2 ,strOutput out varchar2 ) is
i int ;
begin
for i in 1..2000 loop
strOutput:=strOutput || 'a' ;
end loop;end sp_test;当strOutput的长度太长时就会报错。
可否通过改变它的类型或其它方法来尽可能加大它的长度呢?
i int ;
begin
for i in 1..2000 loop
strOutput:=strOutput || 'a' ;
end loop;end sp_test;当strOutput的长度太长时就会报错。
可否通过改变它的类型或其它方法来尽可能加大它的长度呢?
一个是远程客户端通过ADO调用, 另一个是直接通过PL/SQL的TEST调试菜单来调用。
SQL> create or replace procedure sp_test(strInput in varchar2 ,strOutput in out varchar2 ) is
2 i int ;
3 begin
4 for i in 1..2000 loop
5 strOutput:=strOutput || 'a' ;
6 end loop;
7 end sp_test;
8 /过程已创建。SQL>
SQL> var s1 varchar2(4000)
SQL> set serveroutput on
SQL> declare
2 s varchar2(8000);
3 begin
4 sp_test('11',s);
5 dbms_output.put_line(lengthb(s));
6 :s1 := s;
7 end;
8 /
2000PL/SQL 过程已成功完成。SQL> select lengthb(:s1) from dual;LENGTHB(:S1)
------------
2000