PL/SQL执行结果的查询

tl_4321 2010-11-07 02:23:29
在SQL/PLUS中执行下面的PL/SQL

WHENEVER SQLERROR EXit 1
declare
TYPE test_rec IS RECORD(
Code VARCHAR2(10),
Name VARCHAR2(30) NOT NULL := 'book');
V_book test_rec;
CURSOR c_sal IS SELECT empno, ename, sal FROM emp ;
BEGIN
V_book.code := '123';
V_book.name := 'C++ Programming';
DBMS_OUTPUT.PUT_LINE(v_book.code || v_book.name);
BEGIN
FOR v_sal IN c_sal LOOP
DBMS_OUTPUT.put_line( to_char(v_sal.empno)||'---'|| v_sal.ename||'---'|| to_char(v_sal.sal));
END LOOP;

DBMS_OUTPUT.PUT_LINE('');
END;
END;

然后执行,SQL> spool off; 输出结果

可是在最后得到的结果文件中,只有以上执行的SQL语句。 没有DBMS_OUTPUT.put_line的出力结果。
想得到DBMS_OUTPUT.put_line的出力结果,该如何做?
请高手指点。
...全文
80 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tl_4321 2010-11-07
  • 打赏
  • 举报
回复
谢谢大家的回答
  • 打赏
  • 举报
回复

SQL> set serveroutput on
SQL> WHENEVER SQLERROR EXit 1
SQL> declare
2 TYPE test_rec IS RECORD(
3 Code VARCHAR2(10),
4 Name VARCHAR2(30) NOT NULL := 'book');
5 V_book test_rec;
6 CURSOR c_sal IS SELECT empno, ename, sal FROM emp ;
7 BEGIN
8 V_book.code := '123';
9 V_book.name := 'C++ Programming';
10 DBMS_OUTPUT.PUT_LINE(v_book.code || v_book.name);
11 BEGIN
12 FOR v_sal IN c_sal LOOP
13 DBMS_OUTPUT.put_line( to_char(v_sal.empno)||'---'|| v_sal.ename||'---'|| to_char(v_sal.sal));

14 END LOOP;
15
16 DBMS_OUTPUT.PUT_LINE('');
17 END;
18 END;
19 /
123C++ Programming
7369---SMITH---800
7499---ALLEN---1600
7521---WARD---1250
7566---JONES---2975
7654---MARTIN---1250
7698---BLAKE---2850
7782---CLARK---2450
7788---SCOTT---3000
7839---KING---5000
7844---TURNER---1500
7876---ADAMS---1100
7900---JAMES---950
7902---FORD---3000
7934---MILLER---1300

PL/SQL 过程已成功完成。
  • 打赏
  • 举报
回复
--输出没有开
set serveroutput on
lnuwhy 2010-11-07
  • 打赏
  • 举报
回复
set serveroutput on;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧