Oracle DBMS_STREAMS_RPC
Version 21c

General Information
Library Note Morgan's Library Page Header
ACE Director Alum Daniel Morgan, founder of Morgan's Library, is scheduling complimentary technical Workshops on Database Security for the first 30 Oracle Database customers located anywhere in North America, EMEA, LATAM, or APAC that send an email to asra_us@oracle.com. Request a Workshop for your organization today.
Purpose Undocumented

Streams was deprecated 03-Jan-2018 but this package still exists in 21c but not installed by default
AUTHID CURRENT_USER
Dependencies
DBMS_ASSERT DBMS_STANDARD DBMS_STREAMS_TBS_INT
DBMS_CAPTURE_ADM_INTERNAL DBMS_STREAMS_ADM_IVK DBMS_STREAMS_TBS_INT_INVOK
DBMS_CAPTURE_ADM_IVK DBMS_STREAMS_ADM_UTL_INVOK DBMS_SYS_ERROR
DBMS_CAPTURE_SWITCH_ADM DBMS_STREAMS_DATAPUMP DBMS_UTILITY
DBMS_CAPTURE_SWITCH_INTERNAL DBMS_STREAMS_MT DBMS_XSTREAM_GG_ADM
DBMS_FILE_GROUP DBMS_STREAMS_PUB_RPC DBMS_XSTREAM_UTL_IVK
DBMS_LOGREP_UTIL DBMS_STREAMS_RPC_INTERNAL PLITBLM
DBMS_RECO_SCRIPT_INT DBMS_STREAMS_TABLESPACE_ADM V$PARAMETER
DBMS_RECO_SCRIPT_INVOK    
Documented No
Exceptions
Error Code Reason
ORA-31541 Supplemental logging is not enabled in CDB$ROOT
PLS-00201 identifier '<database_link_name>' must be declared
PLS-00352 Unable to access another database 'TESTLINK'
First Available Not known
Security Model Owned by SYS with EXECUTE granted to the EXECUTE_CATALOG_ROLE role.
Source {ORACLE_HOME}/rdbms/admin/prvtsrp.plb
{ORACLE_HOME}/rdbms/admin/prvtbsrp.plb
Subprograms
 
BUILD
Undocumented

Must be in archive log mode to use this procedure
dbms_streams_rpc.build(
invoker                IN  VARCHAR2,
dblink                 IN  VARCHAR2,
first_scn              OUT NUMBER,
wait_for_inflight_txns IN  VARCHAR2);
TBD
 
BUILD_RC
Undocumented dbms_streams_rpc.build_rc(
first_scn              OUT NUMBER,
wait_for_inflight_txns IN  VARCHAR2);
TBD
 
CONVERT_FILE_AT_SOURCE
Undocumented dbms_streams_rpc.convert_file_at_source(
dblink               IN  VARCHAR2,
input_dir_object     IN  VARCHAR2,
input_filenumber     IN  BINARY_INTEGER,
input_platform_id    IN  BINARY_INTEGER,
output_dir_object    IN  VARCHAR2,
output_filename      IN  VARCHAR2,
output_platform_id   IN  BINARY_INTEGER,
convert_fq_file_name OUT VARCHAR2);
TBD
 
CONVERT_FILE_AT_SOURCE_RC
Undocumented dbms_streams_rpc.convert_file_at_source_rc(
input_dir_object     IN  VARCHAR2,
input_filenumber     IN  BINARY_INTEGER,
input_platform_id    IN  BINARY_INTEGER,
output_dir_object    IN  VARCHAR2,
output_filename      IN  VARCHAR2,
output_platform_id   IN  BINARY_INTEGER,
convert_fq_file_name OUT VARCHAR2);
TBD
 
CREATE_VERSION
Undocumented dbms_streams_rpc.create_version(
canon_file_group_owner IN  VARCHAR2,
canon_file_group_name  IN  VARCHAR2,
canon_version_name     IN  VARCHAR2,
canon_version_out      OUT VARCHAR2);
TBD
 
DROP_SCRIPT
Undocumented dbms_streams_rpc.drop_script(
script_id IN RAW,
force     IN BOOLEAN);
TBD
 
GET_CHARACTER_SET
Returns the character set in the database at the database link dbms_streams_rpc.get_character_set(
dblink   IN  VARCHAR2,
charset  OUT VARCHAR2);
DECLARE
 outVal dbms_id;
BEGIN
  dbms_streams_rpc.get_character_set('TESTLINK', outVal);
  dbms_output.put_line(outVal);
END;
/
 
GET_DATABASE_SCNS
Undocumented dbms_streams_rpc.get_database_scns(
dblink      IN  VARCHAR2,
currentscn  OUT NUMBER,
minstartscn OUT NUMBER,
message     OUT VARCHAR2);
DECLARE
 curscn NUMBER;
 minscn NUMBER;
 msg    dbms_id;
BEGIN
  dbms_streams_rpc.get_database_scns('TESTLINK', curscn, minscn, msg);
  dbms_output.put_line(TO_CHAR(curscn));
  dbms_output.put_line(TO_CHAR(minscn));
  dbms_output.put_line(msg);
END;
/
 
GET_DATABASE_SCNS_RC
Undocumented dbms_streams_rpc.get_database_scns_rc(
currentscn  OUT NUMBER,
minstartscn OUT NUMBER,
message     OUT VARCHAR2);
DECLARE
 curscn NUMBER;
 minscn NUMBER;
 msg    dbms_id;
BEGIN
  dbms_streams_rpc.get_database_scns_rc(curscn, minscn, msg);
  dbms_output.put_line(TO_CHAR(curscn));
  dbms_output.put_line(TO_CHAR(minscn));
  dbms_output.put_line(msg);
END;
/
 
GET_EXPORT_DML_SCN
Undocumented dbms_streams_rpc.get_export_dml_scn(
canon_dblink    IN VARCHAR2,
canon_schema    IN VARCHAR2,
canon_tablename IN VARCHAR2,
cookie          IN VARCHAR2,
flashback_scn   IN NUMBER)
RETURN NUMBER;
TBD
 
GET_FILE_GROUP_FILE_INFO
Undocumented dbms_streams_rpc.get_file_group_file_info(
trace_setting          IN  NUMBER,
canon_file_group_owner IN  VARCHAR2,
canon_file_group_name  IN  VARCHAR2,
version_id             IN  NUMBER,
file_id                IN  NUMBER,
file_name              OUT VARCHAR2,
canon_file_dir_obj     OUT VARCHAR2,
file_type              OUT VARCHAR2,);
TBD
 
GET_FILE_GROUP_INFO
Undocumented dbms_streams_rpc.get_file_group_info(
trace_setting          IN  NUMBER,
canon_file_group_owner IN  VARCHAR2,
canon_file_group_name  IN  VARCHAR2,
canon_version_name     IN  VARCHAR2,
file_group_exists      OUT VARCHAR2,
version_exists         OUT VARCHAR2,
canon_directory_object OUT VARCHAR2);
TBD
 
GET_FILE_GROUP_VERSION_INFO
Undocumented dbms_streams_rpc.get_file_group_version_info(
trace_setting          IN  NUMBER,
canon_file_group_owner IN  VARCHAR2,
canon_file_group_name  IN  VARCHAR2,
canon_version_name     IN  VARCHAR2,
version_id             OUT NUMBER,
file_count             OUT NUMBER,
export_platform        OUT VARCHAR2);
TBD
 
GET_OLDEST_SCN
Returns the oldest SCN at the database link for the identified apply process dbms_streams_rpc.get_oldest_scn(
dblink           IN VARCHAR2,
canon_apply_name IN VARCHAR2)
RETURN NUMBER;
TBD
 
GET_OLDEST_SCN_RC
Returns the oldest SCN for the identified apply process dbms_streams_rpc.get_oldest_scn_rc(
canon_apply_name IN  VARCHAR2,
oldest_scn       OUT NUMBER);
TBD
 
GET_SYSTEM_CHANGE_NUMBER
Undocumented dbms_streams_rpc.get_system_change_number(
invoker IN  VARCHAR2,
dblink  IN  VARCHAR2,
scn     OUT NUMBER);
TBD
 
GET_SYSTEM_CHANGE_NUMBER_RC
Undocumented dbms_streams_rpc.get_system_change_number_rc(scn OUT NUMBER);
SELECT current_scn FROM v$database;

CURRENT_SCN
-----------
   92159731


DECLARE
 outVal NUMBER;
BEGIN
  dbms_streams_rpc.get_system_change_number_rc(outVal);
  dbms_output.put_line(TO_CHAR(outVal));
END;
/
92159731

PL/SQL procedure successfully completed.
 
GET_UNDO_BLOCK
Undocumented dbms_streams_rpc.get_undo_block(
script_id         IN  RAW,
block_num         IN  NUMBER,
undo_block        OUT VARCHAR2,
canon_undo_dblink OUT VARCHAR2);
TBD
 
LOCAL_EXECUTE_BLOCK
Undocumented dbms_streams_rpc.local_execute_block(
script_id    IN RAW,
block_num    IN NUMBER,
block        IN CLOB,
remote_state IN CLOB);
TBD
 
MIN_SUPP_LOGGING_ENABLED
Returns TRUE if minimum supplemental logging is enabled at the dblink dbms_streams_rpc.min_supp_logging_enabled(canon_dblink IN VARCHAR2) RETURN BOOLEAN;
BEGIN
  IF dbms_streams_rpc.min_supp_logging_enabled('TESTLINK') THEN
    dbms_output.put_line('Enabled');
  ELSE
    dbms_output.put_line('Not Enabled');
  END IF;
END;
/
BEGIN
*
ERROR at line 1:
ORA-06550: line 1, column 18:
PLS-00352: Unable to access another database 'TESTLINK'
ORA-06550: line 1, column 18:
PLS-00201: identifier 'SYS@TESTLINK' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
ORA-06512: at "SYS.DBMS_STREAMS_RPC", line 482
ORA-06512: at line 2
 
NEED_SCN
Undocumented dbms_streams_rpc.need_scn(
canon_dblink IN     VARCHAR2,
dblink_param IN     VARCHAR2,
interest        OUT BOOLEAN,
cookie       IN OUT VARCHAR2);
TBD
 
PREPARE_GLOBAL_INSTANTIATION
Undocumented dbms_streams_rpc.prepare_global_instantiation(
invoker   IN VARCHAR2,
dblink    IN VARCHAR2,
container IN VARCHAR2);
TBD
 
PREPARE_GLOBAL_INSTANTIATION_R
Undocumented dbms_streams_rpc.prepare_global_instantiation_r(container IN VARCHAR2);
exec dbms_streams_rpc.prepare_global_instantiation_r('PDBDEV');
BEGIN dbms_streams_rpc.prepare_global_instantiation_r('PDBDEV'); END;
*
ERROR at line 1:
ORA-31541: Supplemental logging is not enabled in CDB$ROOT.
ORA-06512: at "SYS.DBMS_CAPTURE_ADM_INTERNAL", line 1331
ORA-06512: at "SYS.DBMS_CAPTURE_ADM_INTERNAL", line 2039
ORA-06512: at "SYS.DBMS_CAPTURE_ADM_INTERNAL", line 1952
ORA-06512: at "SYS.DBMS_CAPTURE_ADM_INTERNAL", line 2025
ORA-06512: at "SYS.DBMS_CAPTURE_ADM_INTERNAL", line 1305
ORA-06512: at line 1
ORA-06512: at "SYS.DBMS_CAPTURE_ADM_INTERNAL", line 1681
ORA-06512: at "SYS.DBMS_CAPTURE_ADM_IVK", line 432
ORA-06512: at "SYS.DBMS_STREAMS_RPC", line 163
ORA-06512: at line 1


SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

Database altered.

exec dbms_streams_rpc.prepare_global_instantiation_r('PDBDEV');

PL/SQL procedure successfully completed.
 
PREPARE_SCHEMA_INSTANTIATION
Undocumented dbms_streams_rpc.prepare_schema_instantiation(
schema_name IN VARCHAR2,
invoker     IN VARCHAR2,
dblink      IN VARCHAR2,
container   IN VARCHAR2);
TBD
 
PREPARE_SCHEMA_INSTANTIATION_R
Undocumented dbms_streams_rpc.prepare_schema_instantiation_r(
schema_name IN VARCHAR2,
container   IN VARCHAR2);
exec dbms_streams_rpc.prepare_schema_instantiation_r('UWCLASS', 'PDBDEV');

PL/SQL procedure successfully completed.
 
PREPARE_TABLE_INSTANTIATION
Undocumented dbms_streams_rpc.prepare_table_instantiation(
table_name IN VARCHAR2,
invoker    IN VARCHAR2,
dblink     IN VARCHAR2,
container  IN VARCHAR2);
TBD
 
PREPARE_TABLE_INSTANTIATION_RC
Undocumented dbms_streams_rpc.prepare_table_instantiation_rc(
table_name IN VARCHAR2,
container  IN VARCHAR2);
exec dbms_streams_rpc.prepare_table_instantiation_rc('SERVERS', 'PDBDEV');

PL/SQL procedure successfully completed.
 
PULL_ALTER_TABLESPACE
Undocumented dbms_streams_rpc.pull_alter_tablespace(
trace_setting   IN NUMBER,
tablespace_name IN VARCHAR2,
alter_option    IN VARCHAR2);
TBD
 
PULL_PLATFORM
10046 and 10053 function the same as trace settings for this proc. dbms_streams_rpc.pull_platform(
trace_setting IN NUMBER,
platform      OUT VARCHAR2);
DECLARE
 outVal dbms_id;
BEGIN
  dbms_streams_rpc.pull_platform(10046, outVal);
  dbms_output.put_line(outVal);
END;
/
Microsoft Windows x86 64-bit

PL/SQL procedure successfully completed.
 
PULL_TABLESPACE_FILE_INFO
Undocumented dbms_streams_rpc.pull_tablespace_file_info(
trace_setting          IN  NUMBER,
tablespace_name        IN  VARCHAR2,
file_number            IN  NUMBER,
canon_directory_object OUT VARCHAR2,
file_name              OUT VARCHAR2);
TBD
 
PULL_TABLESPACE_INFO
Undocumented dbms_streams_rpc.pull_tablespace_info(
trace_setting   IN  NUMBER,
tablespace_name IN  VARCHAR2,
file_count      OUT NUMBER,
alter_needed    OUT VARCHAR2);
TBD
 
PULL_TBS_FILE_NAME_ID
Undocumented dbms_streams_rpc.pull_tbs_file_name_id(
trace_setting          IN  NUMBER,
tablespace_name        IN  VARCHAR2,
file_number            IN  NUMBER,
canon_directory_object OUT VARCHAR2,
file_name              OUT VARCHAR2,
file_id                OUT NUMBER);
TBD
 
SET_OLDEST_SCN
Undocumented dbms_streams_rpc.set_oldest_scn(
dblink           IN VARCHAR2,
canon_apply_name IN VARCHAR2,
scn              IN NUMBER,
is_range         IN BOOLEAN);
TBD
 
SET_OLDEST_SCN_RC
Undocumented dbms_streams_rpc.set_oldest_scn_rc(
canon_apply_name IN VARCHAR2,
scn              IN NUMBER,
is_range         IN VARCHAR2);
TBD
 
TABLESPACES_EXIST_NUM
Undocumented dbms_streams_rpc.tablespaces_exist_num(
database_link IN VARCHAR2,
tbs_names     IN dbms_streams_tablespace_adm.tablespace_set);
TBD
 
TABLESPACES_EXIST_NUM_RC
Undocumented dbms_streams_rpc.tablespaces_exist_num_rc(
tbs_names_str IN  VARCHAR2,
exist_num     OUT NUMBER);
DECLARE
 outVal NUMBER;
BEGIN
  dbms_streams_rpc.tablespaces_exist_num_rc('SYSTEM', outVal);
  dbms_output.put_line(outVal);
END;
/
3

PL/SQL procedure successfully completed.
 
WAIT_FOR_INFLIGHT_TXN
Undocumented dbms_streams_rpc.wait_for_inflight_txn(
invoker     IN VARCHAR2,
dblink      IN VARCHAR2,
current_scn IN NUMBER);
TBD
 
WAIT_FOR_INFLIGHT_TXN_RC
Undocumented dbms_streams_rpc.wait_for_inflight_txn_rc(current_scn IN NUMBER);
DECLARE
 cscn v$database.current_scn%TYPE;
BEGIN
  SELECT current_scn+10
  INTO cscn
  FROM v$database;

  dbms_streams_rpc.wait_for_inflight_txn_rc(cscn);
END;
/

PL/SQL procedure successfully completed.

Related Topics
Database Security
Built-in Functions
Built-in Packages
Advanced Queuing
DBMS_CAPTURE_ADM
DBMS_PROPAGATION_ADM
DBMS_RECOVERABLE_SCRIPT
DBMS_STREAMS
DBMS_STREAMS_ADM
DBMS_STREAMS_ADM_UTL_INT
DBMS_STREAMS_AUTH
DBMS_STREAMS_CONTROL_ADM
DBMS_STREAMS_PUB_RPC
DBMS_STREAMS_RPC
DBMS_STREAMS_TABLESPACE_ADM
What's New In 21c
What's New In 23c

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