【发布时间】:2021-03-31 07:05:57
【问题描述】:
CREATE OR REPLACE PROCEDURE
pr( v IN VARCHAR2 ) is
begin
dbms_output.put(v);
end;
/
CREATE OR REPLACE
PROCEDURE prt
( n IN number )
is
i number :=0;
begin
LOOP
i := i+1;
exit when i=n ;
pr(i);
END LOOP;
pl(''); --dbms_output.new_line;
END;
/
set serveroutput on
exec prt(5);CREATE OR REPLACE PROCEDURE
pr( v IN VARCHAR2 ) is
begin
dbms_output.put(v);
end;
/
CREATE OR REPLACE
PROCEDURE prt
( n IN number )
is
i number :=0;
begin
LOOP
i := i+1;
exit when i=n ;
pr(i);
END LOOP;
pl(''); --dbms_output.new_line;
END;
/
set serveroutput on
exec prt(5);
该代码旨在仅输出输入的数字,但我想输出一个字符串而不是数字。所以我尝试用代码 pr(i||abc'); 创建它。但我遇到了一个错误。如果您能告诉我如何更正它以便我可以输出文本,我将不胜感激。
【问题讨论】:
-
您需要非常小心退出语句。你有 exit when i=n ; 但是当有人进入 *exec prt(-1)" 时会发生什么。答案:运行了很长时间,然后得到溢出异常。