理论上是可以的,但是要注意出口问题,否则会进入死循环。SQL> set serveroutput on
SQL> create procedure selfcall is
2 begin
3 dbms_output.put_line('selfcall');
4 selfcall;
5 end;
6 /
Procedure created.SQL> begin
2 selfcall;
3 end;
4 /
selfcall
selfcall
selfcall
selfcall
...
selfcall
begin
*
ERROR at line 1:
ORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes
SQL> create procedure selfcall is
2 begin
3 dbms_output.put_line('selfcall');
4 selfcall;
5 end;
6 /
Procedure created.SQL> begin
2 selfcall;
3 end;
4 /
selfcall
selfcall
selfcall
selfcall
...
selfcall
begin
*
ERROR at line 1:
ORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes
解决方案 »
- bat并发执行sqlldr命令,并监控完成状态的问题
- 安装oracle时无法生成临时脚本:/tmp/orainstRoot.sh
- 帮忙看看ORACLE PRO*C/C++ 一个编译小错误。
- 求教,俺的这个触发器为什么不起作用呢?
- 求一个sql语句!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 关于object browser操作数据库的问题
- 我在连接数据库时出错;TNS:没有监听器?在哪启动或如何配置它?
- 求助ORACLE的数据库不会用
- 什么是左联,右联一般的书上好象没有讲!!!!!哪位能解释一下
- 请教oracle中select * from 某个存储过程时速度很慢的问题。
- 各位高手,放了两周的问题
- 说说分布式数据库:如腾训的网站应该是分布在各地都有吧。那怎么实现访问控制的呢。
SQL> set serveroutput on
SQL> create or replace procedure sy (var_num number) is
2 begin
3 if var_num > 0 then
4 dbms_output.put_line('number is ' || to_char(var_num));
5 sy(var_num -1);
6 end if;
7 end;
8 /过程已创建。SQL> begin
2 sy(5);
3 end;
4 /
number is 5
number is 4
number is 3
number is 2
number is 1PL/SQL 过程已成功完成。SQL> drop procedure sy;过程已丢弃。SQL>