oracle在plsql中set serveroutput on 调用存储过程没输出

2024-12-14 15:44:14
推荐回答(3个)
回答1:

打开set serveroutput on还需要有输出内容才可以显示。

如,有以下存储过程:

create or replace procedure p_test
as
v_begintime varchar2(20);
v_endtime varchar2(20);
v_str varchar2(10);
begin
  v_begintime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss');
  select 'badkano' into v_str from dual;
  v_endtime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss');
  dbms_output.put_line('开始时间为:'||v_begintime);
  dbms_output.put_line('结束时间为:'||v_endtime);
end;

执行:

其中后边红框输入,就是set serveroutput on的输出内容。

回答2:

这些细节你观察得倒蛮仔细的

个人理解还是因为call 和 execute的不同。
你从这2个单词也可以看得出来。
一个是调用 一个是执行。

我认为:call test1() 是调用这个储存过程,只运行。
而 execute是执行这个储存过程 包括编译,运行。

个人愚见

回答3:

PLSQL Developer?那你要打开命令行窗口才行,就是PLSQL Developer里面的COMMAND LINE;