System Package
CUBRID provides system packages for user convenience. More packages will be added in future versions to expand CUBRID’s functionality, but currently, only the DBMS_OUTPUT package is available.
DBMS_OUTPUT
The DBMS_OUTPUT package provides functionality to store and read string messages in the DBMS_OUTPUT buffer. Developers of stored procedures/functions can use the PUT_LINE or PUT functions of this package to accumulate relevant messages in the DBMS_OUTPUT buffer. Client tools like CSQL or DBeaver use the ENABLE, DISABLE, GET_LINE, and GET_LINES functions of this package to activate/deactivate the message storage feature and retrieve messages accumulated in the buffer. Developers can effectively use these messages for monitoring program progress or debugging.
This section explains the usage and examples of the DBMS_OUTPUT package. The functions of the DBMS_OUTPUT package are as follows:
DBMS_OUTPUT.ENABLE
- DBMS_OUTPUT.ENABLE(size)
Enable the DBMS_OUTPUT message buffer and sets the size of the buffer to store messages.
- Parameters:
size – Specifies the size of the buffer in bytes. The maximum size is 32767 bytes, and exceeding this value will result in an error.
Note
Calling ;server-output on in the CSQL interpreter is internally equivalent to calling the default DBMS_OUTPUT.ENABLE(20000). For more details, refer to CSQL session command server-output.
DBMS_OUTPUT.DISABLE
- DBMS_OUTPUT.DISABLE()
Clears the messages stored in the current buffer and deactivates it. Consequently, no output will appear even if other procedures in the DBMS_OUTPUT package are called.
Note
Calling ;server-output off in the CSQL interpreter is internally equivalent to calling DBMS_OUTPUT.DISABLE(). For more details, refer to CSQL session command server-output.
DBMS_OUTPUT.PUT
DBMS_OUTPUT.PUT_LINE
DBMS_OUTPUT.NEW_LINE
DBMS_OUTPUT.GET_LINE
- DBMS_OUTPUT.GET_LINE(line OUT VARCHAR, status OUT INTEGER)
Reads the first line of the string message stored in the buffer. The read line is then deleted from the buffer.
- Parameters:
line – Stores the string read from the buffer.
status – Stores 0 if the string is successfully read, otherwise stores 1.
DBMS_OUTPUT.GET_LINES
Usage Example
The following is a simple example of using the DBMS_OUTPUT package with the CSQL interpreter. The PUT_LINE function is used by the stored function developer, and the ENABLE, DISABLE, GET_LINE functions are used internally by the CSQL interpreter for functionality implementation.
;server-output on -- CSQL internally calls DBMS_OUTPUT.ENABLE
CREATE OR REPLACE FUNCTION test() RETURN VARCHAR
AS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, World!');
DBMS_OUTPUT.PUT_LINE('Hello, CUBRID!');
DBMS_OUTPUT.PUT_LINE('Hello, DBMS_OUTPUT!');
RETURN 'Success';
END;
SELECT test();
;server-output off -- CSQL internally calls DBMS_OUTPUT.DISABLE
test ()
=======
'Success'
<DBMS_OUTPUT> <-- CSQL internally calls DBMS_OUTPUT.GET_LINE multiple times to retrieve messages for output
====
Hello, World!
Hello, CUBRID!
Hello, DBMS_OUTPUT!