Oracle DBMS_RECOVERABLE_SCRIPT
Version 26ai

General Information
Library Note Morgan's Library Page Header
The best Oracle News for FY2026

Oracle Database 26ai will be available on generic Linux platforms in January and soon on AIX and Windows
Purpose Undocumented but Streams related
AUTHID CURRENT_USER
Data Types TYPE connect_info IS RECORD (
username           VARCHAR2(30),
password           VARCHAR2(30),
connect_identifier VARCHAR2(30),
connect_key        VARCHAR2(??),
i_customer_id      BINARY_INTEGER);

TYPE connect_info_set IS TABLE OF connect_info;
Dependencies
CDB_RECOVERABLE_SCRIPT DBMS_RECO_SCRIPT_INT
CDB_RECOVERABLE_SCRIPT_BLOCKS DBMS_RECO_SCRIPT_INVOK
CDB_RECOVERABLE_SCRIPT_ERRORS DBMS_RECO_SCRIPT_LIB
CDB_RECOVERABLE_SCRIPT_HIST DBMS_STANDARD
CDB_RECOVERABLE_SCRIPT_PARAMS DBMS_STREAMS_AUTO_INT
DBA_RECOVERABLE_SCRIPT DBMS_STREAMS_MT
DBA_RECOVERABLE_SCRIPT_BLOCKS DBMS_STREAMS_SM
DBA_RECOVERABLE_SCRIPT_ERRORS DBMS_SYS_ERROR
DBA_RECOVERABLE_SCRIPT_HIST DBMS_UTILITY
DBA_RECOVERABLE_SCRIPT_PARAMS PLITBLM
DBMS_ASSERT RECO_SCRIPT$
DBMS_LOGREP_UTIL  
Documented No
First Available 10.1
Security Model Owned by SYS with no privileges granted
Source {ORACLE_HOME}/rdbms/admin/prvthrse.plb
Subprograms
 
ADD_FORWARD_BLOCK
Undocumented dbms_recoverable_script.add_forward_block(
script_id      IN RAW,
block          IN CLOB,
dblink_forward IN VARCHAR2,
block_comment  IN VARCHAR2,
block_num      IN NUMBER);
TBD
 
CREATE_SCRIPT
Creates a recoverable script dbms_recoverable_script.create_script(
invoking_pkg_owner IN  VARCHAR2,
invoking_pkg       IN  VARCHAR2,
invoking_proc      IN  VARCHAR2,
script_comment     IN  VARCHAR2,
script_id          OUT RAW);
CREATE OR REPLACE PACKAGE testpkg AUTHID CURRENT_USER IS
  PROCEDURE display_string(teststr IN VARCHAR2);
END testpkg;
/

CREATE OR REPLACE PACKAGE BODY testpkg IS
  PROCEDURE display_string(teststr IN VARCHAR2) IS
  BEGIN
    dbms_output.put_line(teststr);
  END;
END testpkg;
/

SELECT * FROM dba_recoverable_script;
SELECT * FROM dba_recoverable_script_blocks;
SELECT * FROM dba_recoverable_script_errors;
SELECT * FROM dba_recoverable_script_hist;
SELECT * FROM dba_recoverable_script_params;

set serveroutput on

DECLARE
 r RAW(32);
BEGIN
  dbms_recoverable_script.create_script('Test', 'A', 'B', 'C', r);
  dbms_output.put_line(r);
END;
/

SELECT * FROM dba_recoverable_script;
SELECT * FROM dba_recoverable_script_blocks;
SELECT * FROM dba_recoverable_script_errors;
SELECT * FROM dba_recoverable_script_hist;
SELECT * FROM dba_recoverable_script_params;

-- replace the raw value with the one you receive
exec dbms_recoverable_script.drop_script(TO_RAW(TO_BLOB('CB68CBC3E4264A1680AE4620CFE6CD66')));


DECLARE
 r RAW(32);
BEGIN
  dbms_recoverable_script.create_script('Test1', 'DISPLAY_STRING', 'TESTPKG', 'SYS', r);
  dbms_output.put_line(r);
  dbms_recoverable_script.insert_param(r, 'TESTSTR', 'Morgan', 1);
  dbms_recoverable_script.update_comment(r, 'Test2');
  dbms_recoverable_script.run(r);
  dbms_recoverable_script.drop_script(r);
END;
/

SELECT * FROM dba_recoverable_script;
SELECT * FROM dba_recoverable_script_blocks;
SELECT * FROM dba_recoverable_script_errors;
SELECT * FROM dba_recoverable_script_hist;
SELECT * FROM dba_recoverable_script_params;
 
DROP_SCRIPT
Drops a recoverable script dbms_recoverable_script.drop_script(
script_id           IN RAW,
flags               IN BINARY_INTEGER,
ignore_remote_error IN BOOLEAN,
check_owner         IN BOOLEAN,
force               IN BOOLEAN);
See CREATE_SCRIPT Demo Above
 
GET_CUR_BLOCK_NUM
Undocumented dbms_recoverable_script.get_cur_block_num RETURN NUMBER;
SELECT dbms_recoverable_script.get_cur_block_num;
 
INSERT_PARAM
Undocumented dbms_recoverable_script.insert_param(
script_id   IN RAW,
name        IN VARCHAR2,
value       IN VARCHAR2,
param_index IN NUMBER);
See CREATE_SCRIPT Demo Above
 
MODIFY_FORWARD_BLOCK
Undocumented dbms_recoverable_script.modify_forward_block(
script_id      IN RAW,
block_num      IN VARCHAR2,
forward_block  IN CLOB,
dblink_forward IN VARCHAR2,
action         IN VARCHAR2);
TBD
 
MODIFY_UNDO_BLOCK
Undocumented dbms_recoverable_script.modify_undo_block(
script_id   IN RAW,
block_num   IN NUMBER,
undo_block  IN CLOB,
dblink_undo IN VARCHAR2,
action      IN VARCHAR2);
TBD
 
RUN
Run a recovery script

Overload 1
dbms_recoverable_script.run(
script_id    IN RAW,
forward      IN BOOLEAN,
remote_state IN CLOB);
See CREATE_SCRIPT Demo Above
Overload 2 dbms_recoverable_script.run(
script_id    IN RAW,
forward      IN BOOLEAN,
remote_state IN CLOB,
flags        IN BINARY_INTEGER,
conn_info    IN dbms_recoverable_script.connect_info_set);
TBD
 
UPDATE_COMMENT
Modify a script comment dbms_recoverable_script.update_comment(
script_id      IN RAW,
script_comment IN VARCHAR2);
See CREATE_SCRIPT Demo Above
 
UPDATE_STATUS
Undocumented dbms_recoverable_script.update_status(
script_id     IN RAW,
script_status IN NUMBER);
TBD

Related Topics
Built-in Functions
Built-in Packages
Database Security
DBMS_RECO_SCRIPT_INT
DBMS_RECO_SCRIPT_INVOK
DBMS_STREAMS
DBMS_STREAMS_ADM
DBMS_STREAMS_AUTH
What's New In 21c
What's New In 26ai

Morgan's Library Page Footer
This site is maintained by Daniel Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2026 Daniel A. Morgan All Rights Reserved