Oracle高手进

来源:百度知道 编辑:UC知道 时间:2024/06/08 13:15:52
set serveroutput on
declare
n number(2) := 2;
begin
case n
when 1 then
dbms_output.put_line('first branch');
when 26 then
dbms_output.put_line('fifth branch');
else
dbms_output.put_line('else branch');
end case;
end;

执行完这段代码后老是提示:SQLPLUS Command Skipped: set serveroutput on。谁知道原因。
我用的是11g的SQLDeveloper.今天我点击一个名为DBMSOutput的选项后,在里边有个EnableDBMSOutput选项,我点击了一下这个选项,然后输出了set serveroutput on这句。之后我去运行那段PL/SQL语句就可以实现输出效果了。如果不按这个选项输出set serveroutput on这句话,就是达不到输出效果。不知谁在再能解释下?

set serveroutput on:
打开oracle自带的输出方法dbms_output。在执行set serveroutput on以后,使用dbms_output方法可以输出信息,你想要输出执行结果就必须将此开关打开。

至于执行代码后提示:SQLPLUS Command Skipped: set serveroutput on,意思是说执行代码时跳过set serveroutput on,我估计此开关你已经打开了,所以oracle将其跳过了,你可以用show serveroutput 查看下当前serveroutput 的状态,如果是on的话那跳过也就无所谓了。

下面是我用你的代码运行的结果:
SQL> set serveroutput on
SQL> declare
2 n number(2) := 2;
3 begin
4 case n
5 when 1 then
6 dbms_output.put_line('first branch');
7 when 26 then
8 dbms_output.put_line('fifth branch');
9 else
10 dbms_output.put_line('else branch');
11 end case;
12 end;
13 /
else branch

PL/SQL 过程已成功完成。

给你看看我的运行结果:
set serveroutput on
declare
n number(2) := 2;
begin
case n
when 1 then
dbms_output.put_line('first branch');