Chapter 23. DBMS_OUTPUT Built-in Package

Beginner

Q:

23-1.

Believe it or not, early developers inserted rows of data into a database table and then used SQL to examine what had happened. Talk about crude mechanisms!

Q:

23-2.

You can store up to 1 million bytes (not quite the same as 1 MB) in the buffer.

You can put strings, dates, and numbers into the buffer.

Q:

23-3.

Use the DBMS_OUTPUT.PUT_LINE procedure:

CREATE OR REPLACE PROCEDURE hello_world
IS
BEGIN
   DBMS_OUTPUT.PUT_LINE ('hello world!');
END;
/

Q:

23-4.

Call the ENABLE procedure, which also accepts as its single argument the maximum size of the buffer. In the following block, the size is set to the maximum possible:

BEGIN
   DBMS_OUTPUT.ENABLE (1000000);
END;
/

Q:

23-5.

You can call DBMS_OUTPUT.ENABLE, but that won’t be enough. You must use the following command:

SET SERVEROUTPUT ON

It calls DBMS_OUTPUT.ENABLE, but also tells SQL*Plus to automatically flush the contents of the DBMS_OUTPUT buffer to your screen when the block finishes executing.

Q:

23-6.

What you are really doing here is disabling the package, so why not call:

BEGIN
   DBMS_OUTPUT.DISABLE;
END;

Q:

23-7.

Just 2000 bytes. In other words, the following steps in SQL*Plus results in an error:

SQL> CONNECT scott/tiger Connected. SQL> SET SERVEROUTPUT ON SQL> BEGIN 2 FOR linenum IN 1 .. 25 3 LOOP 4 DBMS_OUTPUT.PUT_LINE ( 5 RPAD ('rich people ', 100, 'cause poverty ')); 6 END LOOP; 7 END; 8 / rich people cause poverty cause poverty cause poverty... ... rich people cause poverty cause poverty cause ...

Get Oracle PL/SQL Programming: A Developer's Workbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.