Table of Contents 1 Introduction 1.1 What’s New 1.2 Typographical Conventions Used in this Guide 2 Packages 2.1 Package Components 2.1.1 Package Specification Syntax 2.1.2 Package Body Syntax 2.2 Creating Packages 2.2.1 Creating the Package Specification 2.2.2 Creating the Package Body 2.3 Referencing a Package 2.4 Using Packages With User Defined Types 2.5 Dropping a Package 3 Built-In Packages 3.1 DBMS_ALERT 3.1.1 REGISTER 3.1.2 REMOVE 3.1.3 REMOVEALL 3.1.4 SIGNAL 3.1.5 WAITANY 3.1.6 WAITONE 3.1.7 Comprehensive Example 3.2 DBMS_AQ 3.2.1 ENQUEUE 3.2.2 DEQUEUE 3.2.3 REGISTER 3.2.4 UNREGISTER 3.3 DBMS_AQADM 3.3.1 ALTER_QUEUE 3.3.2 ALTER_QUEUE_TABLE 3.3.3 CREATE_QUEUE 3.3.4 CREATE_QUEUE_TABLE 3.3.5 DROP_QUEUE 3.3.6 DROP_QUEUE_TABLE 3.3.7 PURGE_QUEUE_TABLE 3.3.8 START_QUEUE 3.3.9 STOP_QUEUE 3.4 DBMS_CRYPTO 3.4.1 DECRYPT 3.4.2 ENCRYPT 3.4.3 HASH 3.4.4 MAC 3.4.5 RANDOMBYTES 3.4.6 RANDOMINTEGER 3.4.7 RANDOMNUMBER 3.5 DBMS_JOB 3.5.1 BROKEN 3.5.2 CHANGE 3.5.3 INTERVAL 3.5.4 NEXT_DATE 3.5.5 REMOVE 3.5.6 RUN 3.5.7 SUBMIT 3.5.8 WHAT 3.6 DBMS_LOB 3.6.1 APPEND 3.6.2 COMPARE 3.6.3 CONVERTTOBLOB 3.6.4 CONVERTTOCLOB 3.6.5 COPY 3.6.6 ERASE 3.6.7 GET_STORAGE_LIMIT 3.6.8 GETLENGTH 3.6.9 INSTR 3.6.10 READ 3.6.11 SUBSTR 3.6.12 TRIM 3.6.13 WRITE 3.6.14 WRITEAPPEND 3.7 DBMS_LOCK 3.7.1 SLEEP 3.8 DBMS_MVIEW 3.8.1 GET_MV_DEPENDENCIES 3.8.2 REFRESH 3.8.3 REFRESH_ALL_MVIEWS 3.8.4 REFRESH_DEPENDENT 3.9 DBMS_OUTPUT 3.9.1 CHARARR 3.9.2 DISABLE 3.9.3 ENABLE 3.9.4 GET_LINE 3.9.5 GET_LINES 3.9.6 NEW_LINE 3.9.7 PUT 3.9.8 PUT_LINE 3.9.9 SERVEROUTPUT 3.10 DBMS_PIPE 3.10.1 CREATE_PIPE 3.10.2 NEXT_ITEM_TYPE 3.10.3 PACK_MESSAGE 3.10.4 PURGE 3.10.5 RECEIVE_MESSAGE 3.10.6 REMOVE_PIPE 3.10.7 RESET_BUFFER 3.10.8 SEND_MESSAGE 3.10.9 UNIQUE_SESSION_NAME 3.10.10 UNPACK_MESSAGE 3.10.11 Comprehensive Example 3.11 DBMS_PROFILER 3.11.1 FLUSH_DATA 3.11.2 GET_VERSION 3.11.3 INTERNAL_VERSION_CHECK 3.11.4 PAUSE_PROFILER 3.11.5 RESUME_PROFILER 3.11.6 START_PROFILER 3.11.7 STOP_PROFILER 3.11.8 Using DBMS_PROFILER 3.11.8.1 Querying the DBMS_PROFILER Tables and View 3.11.8.2 DBMS_PROFILER - Reference 3.11.8.2.1 PLSQL_PROFILER_RUNS 3.11.8.2.2 PLSQL_PROFILER_UNITS 3.11.8.2.3 PLSQL_PROFILER_DATA 3.11.8.2.4 PLSQL_PROFILER_RAWDATA 3.12 DBMS_RANDOM 3.12.1 INITIALIZE 3.12.2 NORMAL 3.12.3 RANDOM 3.12.4 SEED 3.12.5 SEED 3.12.6 STRING 3.12.7 TERMINATE 3.12.8 VALUE 3.12.9 VALUE 3.13 DBMS_REDACT 3.13.1 Using DBMS_REDACT Constants and Function Parameters 3.13.2 ADD_POLICY 3.13.3 ALTER_POLICY 3.13.4 DISABLE_POLICY 3.13.5 ENABLE_POLICY 3.13.6 DROP_POLICY 3.13.7 UPDATE_FULL_REDACTION_VALUES 3.14 DBMS_RLS 3.14.1 ADD_POLICY 3.14.2 DROP_POLICY 3.14.3 ENABLE_POLICY 3.15 DBMS_SCHEDULER 3.15.1 Using Calendar Syntax to Specify a Repeating Interval 3.15.2 CREATE_JOB 3.15.3 CREATE_PROGRAM 3.15.4 CREATE_SCHEDULE 3.15.5 DEFINE_PROGRAM_ARGUMENT 3.15.6 DISABLE 3.15.7 DROP_JOB 3.15.8 DROP_PROGRAM 3.15.9 DROP_PROGRAM_ARGUMENT 3.15.10 DROP_SCHEDULE 3.15.11 ENABLE 3.15.12 EVALUATE_CALENDAR_STRING 3.15.13 RUN_JOB 3.15.14 SET_JOB_ARGUMENT_VALUE 3.16 DBMS_SESSION 3.16.1 SET_ROLE 3.17 DBMS_SQL 3.17.1 BIND_VARIABLE 3.17.2 BIND_VARIABLE_CHAR 3.17.3 BIND VARIABLE RAW 3.17.4 CLOSE_CURSOR 3.17.5 COLUMN_VALUE 3.17.6 COLUMN_VALUE_CHAR 3.17.7 COLUMN VALUE RAW 3.17.8 DEFINE_COLUMN 3.17.9 DEFINE_COLUMN_CHAR 3.17.10 DEFINE COLUMN RAW 3.17.11 DESCRIBE COLUMNS 3.17.12 EXECUTE 3.17.13 EXECUTE_AND_FETCH 3.17.14 FETCH_ROWS 3.17.15 IS_OPEN 3.17.16 LAST_ROW_COUNT 3.17.17 OPEN_CURSOR 3.17.18 PARSE 3.18 DBMS_UTILITY 3.18.1 LNAME_ARRAY 3.18.2 UNCL_ARRAY 3.18.3 ANALYZE_DATABASE, ANALYZE SCHEMA and ANALYZE PART_OBJECT 3.18.4 CANONICALIZE 3.18.5 COMMA_TO_TABLE 3.18.6 DB_VERSION 3.18.7 EXEC_DDL_STATEMENT 3.18.8 FORMAT_CALL_STACK 3.18.9 GET_CPU_TIME 3.18.10 GET_DEPENDENCY 3.18.11 GET_HASH_VALUE 3.18.12 GET_PARAMETER_VALUE 3.18.13 GET_TIME 3.18.14 NAME_TOKENIZE 3.18.15 TABLE_TO_COMMA 3.19 UTL_ENCODE 3.19.1 BASE64_DECODE 3.19.2 BASE64_ENCODE 3.19.3 MIMEHEADER_DECODE 3.19.4 MIMEHEADER_ENCODE 3.19.5 QUOTED_PRINTABLE_DECODE 3.19.6 QUOTED_PRINTABLE_ENCODE 3.19.7 TEXT_DECODE 3.19.8 TEXT_ENCODE 3.19.9 UUDECODE 3.19.10 UUENCODE 3.20 UTL_FILE 3.20.1 Setting File Permissions with utl_file.umask 3.20.2 FCLOSE 3.20.3 FCLOSE_ALL 3.20.4 FCOPY 3.20.5 FFLUSH 3.20.6 FOPEN 3.20.7 FREMOVE 3.20.8 FRENAME 3.20.9 GET_LINE 3.20.10 IS_OPEN 3.20.11 NEW_LINE 3.20.12 PUT 3.20.13 PUT_LINE 3.20.14 PUTF 3.21 UTL_HTTP 3.21.1 HTML_PIECES 3.21.2 REQ 3.21.3 RESP 3.21.4 BEGIN_REQUEST 3.21.5 END_REQUEST 3.21.6 END_RESPONSE 3.21.7 GET_BODY_CHARSET 3.21.8 GET_FOLLOW_REDIRECT 3.21.9 GET_HEADER 3.21.10 GET_HEADER_BY_NAME 3.21.11 GET_HEADER_COUNT 3.21.12 GET_RESPONSE 3.21.13 GET_RESPONSE_ERROR_CHECK 3.21.14 GET_TRANSFER_TIMEOUT 3.21.15 READ_LINE 3.21.16 READ_RAW 3.21.17 READ_TEXT 3.21.18 REQUEST 3.21.19 REQUEST_PIECES 3.21.20 SET_BODY_CHARSET 3.21.21 SET_FOLLOW_REDIRECT 3.21.22 SET_HEADER 3.21.23 SET_RESPONSE_ERROR_CHECK 3.21.24 SET_TRANSFER_TIMEOUT 3.21.25 WRITE_LINE 3.21.26 WRITE_RAW 3.21.27 WRITE_TEXT 3.22 UTL_MAIL 3.22.1 SEND 3.22.2 SEND_ATTACH_RAW 3.22.3 SEND_ATTACH_VARCHAR2 3.23 UTL_RAW 3.23.1 CAST_TO_RAW 3.23.2 CAST_TO_VARCHAR2 3.23.3 CONCAT 3.23.4 CONVERT 3.23.5 LENGTH 3.23.6 SUBSTR 3.24 UTL_SMTP 3.24.1 CONNECTION 3.24.2 REPLY/REPLIES 3.24.3 CLOSE_DATA 3.24.4 COMMAND 3.24.5 COMMAND_REPLIES 3.24.6 DATA 3.24.7 EHLO 3.24.8 HELO 3.24.9 HELP 3.24.10 MAIL 3.24.11 NOOP 3.24.12 OPEN_CONNECTION 3.24.13 OPEN_DATA 3.24.14 QUIT 3.24.15 RCPT 3.24.16 RSET 3.24.17 VRFY 3.24.18 WRITE_DATA 3.24.19 Comprehensive Example 3.25 UTL_URL 3.25.1 ESCAPE 3.25.2 UNESCAPE 4 Acknowledgements