PL/SQL中测试存储过程,如何立即输出DBMS_OUTPUT的语句。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PL/SQL中测试存储过程,如何立即输出DBMS_OUTPUT的语句。相关的知识,希望对你有一定的参考价值。

请问在PL/SQL中测试存储过程,同时多次调用过程,在每一个过程后面都加了一句dbms_output.put_line(i);
具体脚本如下
declare
i integer;
begin
-- Call the procedure
sp_did_day(1,i);
dbms_output.put_line(i);
sp_did_day(2,i);
dbms_output.put_line(i);
sp_did_day(3,i);
dbms_output.put_line(i);
sp_did_day(4,i);
dbms_output.put_line(i);
sp_did_day(5,i);
dbms_output.put_line(i);
end;
这个在所有的过程都执行完才能输出,如何立即输出啊?

要想立即输出就把过程分开一个一个调用。
这样一起调用的匿名块,肯定要等程序执行完才一起输出。
参考技术A 把在dbms_output.put_line 写在 sp_did_day 内输出 参考技术B 把在dbms_output.put_line 写在 sp_did_day 内输出追问

这样也不行,也是等全部执行完了才会输出。

参考技术C 我也想知道唉。。。

pl/sql developer中如何调试存储过程

1、点击空白页面,然后选择测试窗口。

 

2、点击完之后就会弹出一个测试窗口的页面

 

 3、然后就可以输入sql进行调试

-- Created on 2020/5/30 by 123
declare 
  -- Local variables here
  i integer;
  O_MSG VARCHAR2(50);
  V_SFC_NO VARCHAR2(50);
  V_USER VARCHAR2(50);
begin
  -- Test statements here
  P_CHECK_SFC(:V_SFC_NO,:V_USER,:O_MSG);
end;

具体

 先定义三个参数,分别对应下面存储过程的三个参数

然后在下面分别为每一个参数变量添加类型和值

然后执行就能看到结果了,如上图的OK值是存储过程返回的结果。(参数O_MSG是out类型)

 

 

4、如何一步一步得调试?分别使用上面的6个不同的按钮即可。

第一个:开始调试。

第二个:运行。(点击这个按钮就是一步运行到底。看不到具体每一个sql语句的调试结果)

第三个:单步进入。就是按照顺序一步步地调试的(调试存储过程一般用这个多)

第四个:单步跳过

第五个:单步退出

第六个:运行到下一个异常

第四、五、六个不常用,自己琢磨。

 

以上是关于PL/SQL中测试存储过程,如何立即输出DBMS_OUTPUT的语句。的主要内容,如果未能解决你的问题,请参考以下文章

oracle创建存储过程时,提示错误是:错误(5,18): PL/SQL: ORA-00947: 没有足够的值?代码如下:

一个存储过程,报错如下 13 PL/SQL:ORA-00922:缺少或无效选项 13 PL/SQL:SQL Statement ignored

Mysql、SQL server有没有PL/SQL?或者是类似PL/SQL的东西?PL/SQL是否存储过程?

oracle创建存储过程时,提示错误是:错误(5,18): PL/SQL: ORA-00947: 没有足够的值?代码如下:

在 PL/SQL 存储过程中将表作为参数传递

如何将 PL/SQL 的输出(XML)存储在 oracle 表中