5
A
回答
11
没有EXIT语句一个循环产生的PL无限循环单程/ SQL
BEGIN
LOOP
null;
END LOOP;
END;
你可以也写WHILE循环永不结束
BEGIN
WHILE(true)
LOOP
NULL;
END LOOP;
END;
2
不知道为什么你会需要它,但:
BEGIN
WHILE 1 = 1
LOOP
NULL;
END LOOP;
END;
5
如果你的问题是你没有得到输出,那么你可能没有e nabled DBMS OUTPUT呢。你可以做到这一点:
set serveroutput on
+0
带有无限循环的'DBMS_OUTPUT'是不合逻辑的。除非命令(查询,匿名块,DDL,您试图运行的任何“单元”)完成,否则Oracle不会将任何输出返回给客户端,因此无论您是否使用无限循环都无法输出输出启用它与否。 – jpmc26 2017-06-24 04:04:01
3
含有一个DBMS_OUTPUT.PUT_LINE循环不会是无限的(如果启用SERVEROUTPUT)的,最终,它会充满整个输出缓冲区或可用内存。以前的限制大约是100万字节,所以会很快被打中。如果它填满了整个计算机内存,那可能需要相当长的一段时间。
在无限循环上,我经历了一个糟糕的补丁,忘记去表中的下一个元素。
DECLARE
type typ_tab is table of varchar2(10) index by pls_integer;
t_tab typ_tab;
v_ind number;
BEGIN
t_tab(10) := 'A';
t_tab(20) := 'B';
v_ind := t_tab.first;
WHILE v_ind IS NOT NULL LOOP
dbms_output.put_line(t_tab(v_ind));
v_ind := t_tab.next(v_ind); --Forget this and it loops forever
END LOOP;
END;
一旦进入这样的循环,会话可能需要由DBA终止。
相关问题
- 1. 编写Oracle存储过程
- 2. SQL Server:存储过程无限循环
- 3. 在oracle中编写存储过程
- 4. 如何用if编写存储过程
- 5. 如何编写通用存储过程?
- 6. Oracle - 在另一个存储过程的循环中调用存储过程
- 7. 在存储过程中使用循环
- 8. 用无限参数的插入语句编写存储过程
- 9. Bash编程无限循环
- 10. MySQL如何循环存储过程?
- 11. 使用Oracle存储过程
- 12. 如何在oracle中编写存储过程?
- 13. 循环为存储过程
- 14. 循环存储过程
- 15. 循环存储过程中
- 16. 存储过程循环
- 17. 循环存储过程
- 18. While循环存储过程
- 19. 如何编写存储过程
- 20. 如何编写处理存储过程
- 21. 如何在mysql中使用while循环调用存储过程
- 22. 如何编写Telerik报表向导可以使用的Oracle存储过程?
- 23. 如何使用SQL存储过程编写过滤的查询?
- 24. 使用rabbitmq与rails,如何创建无限循环过程?
- 25. 使用松鼠sql中的DB2存储过程。无法循环
- 26. 如何在存储过程中使用循环sql server 2005
- 27. 如何在存储过程中使用循环
- 28. 如何使用存储过程中的循环更新多列?
- 29. 如何调用Oracle存储过程
- 30. 使用For循环来在Oracle过程
你试图实现什么?听起来没有什么意义,因为你试图避免在存储过程中出现无限循环。 – 2010-11-08 14:15:09
我确实得到了输出:'0 1 2 3 4 5 6 7 8 9 10 var is null' – Quassnoi 2010-11-08 14:18:40
Jay S的评论在这里几乎肯定是正确的 - 您需要在调用PL/SQL块之前启用serveroutput。 – 2010-11-08 14:38:21