Oracle DBMS_STREAMS_RPC
Version 21c

General Information
Library Note Morgan's Library Page Header
Which has the higher priority in your organization: Deploying a new database or securing the ones you already have? Looking for a website, and resources, dedicated solely to securing Oracle databases? Check out DBSecWorx.
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_UTIL_INT
DBMS_STREAMS_AUTH
DBMS_STREAMS_CONTROL_ADM
DBMS_STREAMS_PUB_RPC
DBMS_STREAMS_RPC
DBMS_STREAMS_TABLESPACE_ADM
What's New In 19c
What's New In 20c-21c

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-2021 Daniel A. Morgan All Rights Reserved
  DBSecWorx