General
Source {ORACLE_HOME}/rdbms/admin/dbmsotpt.sql
First Available 7.3.4
Data Types TYPE chararr IS TABLE OF VARCHAR2(32767) INDEX BY BINARY_INTEGER;
-- Note: was 255 bytes in 10gR1 and earlier

TYPE dbmsoutput_linesarray IS
VARRAY(2147483647) OF VARCHAR2(32767);

Dependencies SELECT name FROM dba_dependencies
WHERE referenced_name = 'DBMS_OUTPUT'
UNION
SELECT referenced_name FROM dba_dependencies
WHERE name = 'DBMS_OUTPUT';
Exceptions
Exception Name Error Code Reason
ORA-20000 ORU-10027 Buffer overflow, limit of <buf_limit>bytes
ORA-20000 ORU-10028 Line length overflow, limit is 32767 bytes per line
SQL*Plus SET SERVEROUTPUT ON in SQL*Plus is equivalent to:

dbms_output.enable(buffer_size => NULL);

 
DISABLE
Disable DBMS_OUTPUT and reset the buffer size to the default dbms_output.disable;
exec dbms_output.disable;
 
ENABLE
Enable DBMS_OUTPUT and set the buffer size. The buffer size can be between 1 and 1,000,000 dbms_output.enable(buffer_size IN INTEGER DEFAULT 20000);
exec dbms_output.enable(1000000);
 
GET_LINE
Returns a single line of buffered information dbms_output.get_line(line OUT VARCHAR2, status OUT INTEGER);
set serveroutput on

DECLARE
buffer VARCHAR2(100);
status INTEGER;
BEGIN
dbms_output.put_line('This is');
dbms_output.put_line('a test.');
dbms_output.get_line(buffer, status);
dbms_output.put_line('Buffer: ' || buffer);
dbms_output.put_line('Status: ' || TO_CHAR(status));
END;
/

 
GET_LINES
Retrieves an array of lines from the buffer

Overload 1

dbms_output.get_lines(lines OUT CHARARR, numlines IN OUT INTEGER);
set serveroutput on
DECLARE
outtab dbms_output.chararr;
fetchln INTEGER := 15;
BEGIN
outtab(1) := 'This is a test';
outtab(12) := 'of dbms_output.get_lines';

dbms_output.put_line('A: ' || outtab(1));
dbms_output.put_line('A: ' || outtab(12));

dbms_output.get_lines(outtab, fetchln);
dbms_output.put_line(TO_CHAR(fetchln));
/*
FOR i IN 1 .. fetchln LOOP
dbms_output.put_line('B: ' || outtab(i));
END LOOP;
*/
END;
/
DECLARE
outtab dbms_output.chararr;
fetchln INTEGER := 15;
BEGIN
outtab(1) := 'This is a test';
outtab(12) := 'of dbms_output.get_lines';

dbms_output.put_line('A: ' || outtab(1));
dbms_output.put_line('A: ' || outtab(12));

dbms_output.get_lines(outtab, fetchln);
dbms_output.put_line(TO_CHAR(fetchln));

FOR i IN 1 .. fetchln LOOP
dbms_output.put_line('B: ' || outtab(i));
END LOOP;
END;
/

Overload 2 dbms_output.get_lines(
lines OUT dbmsoutput_linesarray,
numlines IN OUT INTEGER);
set serveroutput on

BEGIN
dbms_output.put_line(lo(1));
END;
/
===========================================DECLARE lo dbmsoutput_linesarray :=dbmsoutput_linesarray(10); fetchln INTEGER := 15;
BEGIN lo(1) := 'ABC';
lo.extend;
lo(2) := 'DEF';
lo.extend;
lo(3) := 'GHI';
lo.extend;
lo(4) := 'JKL';
lo.extend;
lo(5) := 'MNO';
dbms_output.put_line('A: ' || lo(1));
dbms_output.put_line('A: ' || lo(2));
dbms_output.put_line('A: ' || lo(3));
dbms_output.put_line('A: ' || lo(4));
dbms_output.put_line('A: ' || lo(5));

dbms_output.get_lines(lo, fetchln);
dbms_output.put_line(TO_CHAR(fetchln));
/*
FOR i IN 1 .. fetchln LOOP
dbms_output.put_line('B: ' || outtab(i));
END LOOP;
*/
END;
/
DECLARE lo dbmsoutput_linesarray := dbmsoutput_linesarray(10); fetchln INTEGER := 15;
BEGIN lo(1) := 'ABC';
lo.extend;
lo(2) := 'DEF';
lo.extend;
lo(3) := 'GHI';
lo.extend;
lo(4) := 'JKL';
lo.extend;
lo(5) := 'MNO';
dbms_output.put_line('A: ' || lo(1));
dbms_output.put_line('A: ' || lo(2));
dbms_output.put_line('A: ' || lo(3));
dbms_output.put_line('A: ' || lo(4));
dbms_output.put_line('A: ' || lo(5));

dbms_output.get_lines(lo, fetchln);
dbms_output.put_line(TO_CHAR(fetchln));

FOR i IN 1 .. fetchln LOOP
dbms_output.put_line('B: ' || lo(i));
END LOOP;
END;
/

 
NEW_LINE
Inserts an end-of-line marker dbms_output.new_line;
set serveroutput on

BEGIN
dbms_output.enable(9999999);
dbms_output.new_line();

FOR rec IN (SELECT table_name FROM user_tables)
LOOP
dbms_output.put_line (rec.table_name);
END LOOP;
dbms_output.new_line();
END;
/

 
PUT
Obsolete and no longer supported by Oracle
 
PUT_LINE
Output a literal dbms_output.put_line(a IN VARCHAR2);
set serveroutput on

BEGIN
dbms_output.put_line('Display a string literal');
END;
/

Output a variable set serveroutput on size 1000000 format wrapped

DECLARE
x VARCHAR2(20) := RPAD('Dan Morgan', 199, 'x')
BEGIN
dbms_output.put_line(x);
END;
/

 
 

最新文章

  1. SSIS 包部署 Package Store 后,在 IS 中可以执行,AGENT 执行却报错
  2. iOS设计模式之观察者模式
  3. 2.11 2D平面最近点对问题[closest pair problem]
  4. Android TextView 手动上下滑动
  5. 【Qt for Android】OpenGL ES 绘制彩色立方体
  6. The Swift Programming Language 中国版
  7. Linux - ubuntu中vi不能正常使用方向键与退格键的问题
  8. c# 几种深拷贝方式的比较
  9. (Java)微信之个人公众账号开发(二)——接收并处理用户消息(下)
  10. druid 连接池加密算法
  11. Python的 is 和 == 弄懂了吗?
  12. 开源的API文档工具框架——Swagger简介
  13. Python实战一
  14. matlab数据导入verilog仿真
  15. Linux dnsmasq.conf
  16. 如何获取Android系统APP的Package Name和Activity Name
  17. 自建yum源解决Ceph搭建过程中从官网取包慢的问题
  18. SQL语句(七)简单查询
  19. Java编程的逻辑 (2) - 赋值
  20. js 取父级 页面上的元素

热门文章

  1. Writing Code-Codeforces511C**
  2. iPhone 3gs 5.0.1降級到4.3.3 昨晚搞定(有shsh備份)
  3. HDU 4352 XHXJ&amp;#39;s LIS(数位dp&amp;amp;状态压缩)
  4. C++求解数组中出现超1/4的三个数字。
  5. js 对有“命名空间”的表单做深度解析
  6. A program to print Fahrenheit-Celsius table with floating-point values
  7. PL/SQL --&gt;隐式游标(SQL%FOUND)
  8. InfluxDB存储引擎Time Structured Merge Tree——本质上和LSM无异,只是结合了列存储压缩,其中引入fb的float压缩,字串字典压缩等
  9. 【转载】limits.h
  10. 如何装载Storyboard中的ViewController?