SET SERVEROUTPUT ON buffer 100;
DECLARE
error_code NUMBER;
abc number;
error_msg VARCHAR2(240);
CURSOR cur IS SELECT emp_name from emp; BEGIN
DBMS_OUTPUT.PUT_LINE('cursor opened');
open cur; LOOP
fetch cur into abc;
DBMS_OUTPUT.PUT_LINE('one data');
DBMS_OUTPUT.PUT_LINE(abc||',');
exit when cur%notFound;
END LOOP;
close cur; END;
/ 输出结果只有
PL/SQL procedure successfully completed.
为什么?
DECLARE
error_code NUMBER;
abc number;
error_msg VARCHAR2(240);
CURSOR cur IS SELECT emp_name from emp; BEGIN
DBMS_OUTPUT.PUT_LINE('cursor opened');
open cur; LOOP
fetch cur into abc;
DBMS_OUTPUT.PUT_LINE('one data');
DBMS_OUTPUT.PUT_LINE(abc||',');
exit when cur%notFound;
END LOOP;
close cur; END;
/ 输出结果只有
PL/SQL procedure successfully completed.
为什么?
SQL> DECLARE
2 error_code NUMBER;
3 abc number;
4 error_msg VARCHAR2(240);
5 CURSOR cur IS SELECT 1 from dual;
6
7 BEGIN
8 DBMS_OUTPUT.PUT_LINE('cursor opened');
9 open cur;
10
11 LOOP
12 fetch cur into abc;
13 DBMS_OUTPUT.PUT_LINE('one data');
14 DBMS_OUTPUT.PUT_LINE(abc||',');
15 exit when cur%notFound;
16 END LOOP;
17 close cur;
18
19 END;
20 /cursor opened
one data
1,
one data
1,PL/SQL procedure successfully completed有输出阿
界面只输出PL/SQL procedure successfully completed也不报任何错误
*
ERROR at line 1:
ORA-00922: missing or invalid option
dbms output 只适用于命令行的语句吧?
这个语句应当在运行.sql文件前单独在命令行执行
SQL>ed a
DECLARE
abc number;
CURSOR cur IS SELECT 1 from dual;BEGIN
DBMS_OUTPUT.PUT_LINE('cursor opened');
open cur;LOOP
fetch cur into abc;
DBMS_OUTPUT.PUT_LINE('one data');
exit when cur%notFound;
END LOOP;
close cur;
end;
/
SQL>@f
PL/SQL procedure successfully completed.就是没有输出
SQL> set serveroutput off
SQL> declare
2 v_sql varchar2(20);
3 begin
4 dbms_output.put_line('1');
5 dbms_output.put_line('1-1');
6 dbms_output.put_line('1-1-1');
7 dbms_output.put_line('1-1');
8 dbms_output.put_line('1');
9 end;
10 /PL/SQL 过程已成功完成。SQL> @d:\cc.sql
SQL> declare
2 v_sql varchar2(20);
3 begin
4 dbms_output.put_line('1');
5 dbms_output.put_line('1-1');
6 dbms_output.put_line('1-1-1');
7 dbms_output.put_line('1-1');
8 dbms_output.put_line('1');
9 end;
10 /
1
1-1
1-1-1
1-1
1PL/SQL 过程已成功完成。D:\CC.SQL文件内容:
set serveroutput on;
17 /
cursor opened
one data
one dataPL/SQL 过程已成功完成。
abc number;
CURSOR cur IS SELECT 1 from dual;BEGIN
DBMS_OUTPUT.PUT_LINE('cursor opened');
open cur;LOOP
fetch cur into abc;
DBMS_OUTPUT.PUT_LINE('one data');
exit when cur%notFound;
END LOOP;
close cur;
end;这是文件内容
SQL> set serveroutput on;
SQL> begin
2 dbms_output.put_line('abc');
3 end;
4 /PL/SQL procedure successfully completed.SQL> /PL/SQL procedure successfully completed.依旧没有结果
莫非是这个语句多了个‘;’号?
set serverout on size 1000000;
begin
dbms_output.put_line('abc');
end;
/可以输出么
SQL> set serveroutput on size 100000
SQL> begin
2 dbms_output.put_line('abc');
3 end;
4 /
abcPL/SQL 过程已成功完成。
在sql窗口