Built-in Packages
Print debug output (PUT_LINE, ENABLE) Read and write OS files via DIRECTORY objects
LOB manipulation (SUBSTR, INSTR, APPEND, LOADCLOBFROMFILE, temporary LOBs) Dynamic SQL method 4
Jobs, programs, schedules, chains, windows (Module 44) Legacy jobs (deprecated) Optimizer statistics (Module 49) Display execution plans
Extract DDL: SELECT DBMS_METADATA.GET_DDL('TABLE','EMPLOYEES') FROM dual; Encryption and hashing Random values (VALUE, STRING) DBMS_LOCK / DBMS_SESSION.SLEEP User locks, sleep DBMS_ALERT, DBMS_PIPE DBMS_AQ, DBMS_AQADM
Advanced Queuing / Transactional Event Queues UTL_HTTP, UTL_SMTP, UTL_MAIL, UTL_TCP
Network calls (need network ACLs via DBMS_NETWORK_ACL_ADMIN)
Object storage, external data, REST (Autonomous DB / 19c+) Online table redefinition
DBMS_FLASHBACK, DBMS_FLASHBACK_ARCHIVE Flashback (Module 33) Virtual Private Database (Module 41)
FORMAT_ERROR_BACKTRACE, GET_TIME, COMPILE_SCHEMA AWR snapshots and reports DBMS_SQLTUNE, DBMS_SPM SQL tuning, SQL plan management Chunked parallel DML Compare and converge data between DBs DML error logging tables DBMS_VECTOR, DBMS_VECTOR_CHAIN AI vector embedding and chunking (23ai)
Select AI: natural language to SQL (ADB, 23ai)
-- UTL_FILE example
CREATE DIRECTORY data_dir AS '/u01/data'; GRANT READ, WRITE ON DIRECTORY data_dir TO hr;
DECLARE f UTL_FILE.FILE_TYPE;
BEGIN
f := UTL_FILE.FOPEN('DATA_DIR', 'emps.csv', 'w', 32767);
FOR r IN (SELECT employee_id, last_name FROM employees) LOOP
UTL_FILE.PUT_LINE(f, r.employee_id || ',' || r.last_name);
END LOOP;
UTL_FILE.FCLOSE(f);
END;
/