PL/SQL Packages and Types Reference 10g Release 1 (10.1) Part Number B10802-01 |
|
|
View PDF |
The DBMS_STREAMS
package, one of a set of Streams packages, provides interfaces to convert SYS.AnyData
objects into logical change record (LCR) objects, to return information about Streams attributes and Streams clients, and to annotate redo entries generated by a session with a binary tag. This tag affects the behavior of a capture process, a propagation, or an apply process whose rules include specifications for these binary tags in redo entries or LCRs.
See Also:
Oracle Streams Concepts and Administration and Oracle Streams Replication Administrator's Guide for more information about this package and Streams |
This chapter contains the following topics:
PUBLIC
is granted EXECUTE
privilege on this package.
This function returns the DBMS_STREAMS.COMPATIBLE_10_1
constant.
DBMS_STREAMS.COMPATIBLE_10_1 RETURN INTEGER;
You can use this function with the GET_COMPATIBLE
member function for LCRs to specify behavior based on compatibility.
The constant value returned by this function corresponds to 10.1.0 compatibility in a database. You control the compatibility of an Oracle database using the COMPATIBLE
initialization parameter.
See Also:
|
This function returns the DBMS_STREAMS.COMPATIBLE_9_2
constant.
DBMS_STREAMS.COMPATIBLE_9_2 RETURN INTEGER;
You may use this function with the GET_COMPATIBLE
member function for LCRs to specify behavior based on compatibility.
The constant value returned by this function corresponds to 9.2.0 compatibility in a database. You control the compatibility of an Oracle database using the COMPATIBLE
initialization parameter.
See Also:
|
This function converts a SYS.AnyData
object into a SYS.LCR$_DDL_RECORD
object.
DBMS_STREAMS.CONVERT_ANYDATA_TO_LCR_DDL( source IN SYS.AnyData) RETURN SYS.LCR$_DDL_RECORD;
Parameter | Description |
---|---|
|
The |
You can use this function in a transformation created by the CREATE_TRANSFORMATION
procedure in the DBMS_TRANSFORM
package. Use the transformation you create when you add a subscriber for propagation of DDL LCRs from a SYS.AnyData
queue to a SYS.LCR$_DDL_RECORD
typed queue.
See Also:
Oracle Streams Concepts and Administration for more information about this function |
This function converts a SYS.AnyData
object into a SYS.LCR$_ROW_RECORD
object.
DBMS_STREAMS.CONVERT_ANYDATA_TO_LCR_ROW( source IN SYS.AnyData) RETURN SYS.LCR$_ROW_RECORD;
Parameter | Description |
---|---|
|
The |
You can use this function in a transformation created by the CREATE_TRANSFORMATION
procedure in the DBMS_TRANSFORM
package. Use the transformation you create when you add a subscriber for propagation of row LCRs from a SYS.AnyData
queue to a SYS.LCR$_ROW_RECORD
typed queue.
See Also:
Oracle Streams Concepts and Administration for more information about this function |
This function returns information about various Streams attributes.
DBMS_STREAMS.GET_INFORMATION( name IN VARCHAR2) RETURN SYS.AnyData;
This function gets the Streams name of the invoker if the invoker is one of the following Streams types:
If the invoker is not one of these types, then this function returns a NULL
.
DBMS_STREAMS.GET_STREAMS_NAME RETURN VARCHAR2;
You can use this function in rule conditions, rule-based transformations, apply handlers, and error handlers. For example, if you use one error handler for multiple apply processes, then you can use the GET_STREAMS_NAME
function to determine the name of the apply process that raised the error.
This function gets the Streams type of the invoker and returns one of the following types:
If the invoker is not one of these types, then this function returns a NULL
.
DBMS_STREAMS.GET_STREAMS_TYPE RETURN VARCHAR2;
This function can be used in rule conditions, rule-based transformations, apply handlers, and error handlers. For example, you can use the GET_STREAMS_TYPE
function to instruct a DML handler to operate differently if it is processing events from the error queue (ERROR_EXECUTION
type) instead of the apply process queue (APPLY
type).
This function gets the binary tag for all redo entries generated by the current session.
See Also:
Oracle Streams Replication Administrator's Guide for more information about tags |
DBMS_STREAMS.GET_TAG() RETURN RAW;
The following example illustrates how to display the current LCR tag as output:
SET SERVEROUTPUT ON DECLARE raw_tag RAW(2000); BEGIN raw_tag := DBMS_STREAMS.GET_TAG(); DBMS_OUTPUT.PUT_LINE('Tag Value = ' || RAWTOHEX(raw_tag)); END; /
You can also display the value by querying the DUAL
view:
SELECT DBMS_STREAMS.GET_TAG FROM DUAL;
This procedure sets the binary tag for all redo entries subsequently generated by the current session. Each redo entry generated by DML or DDL statements in the current session will have this tag. This procedure affects only the current session.
See Also:
Oracle Streams Replication Administrator's Guide for more information about tags |
DBMS_STREAMS.SET_TAG( tag IN RAW DEFAULT NULL);
To set the tag to the hexadecimal value of '17'
in the current session, run the following procedure:
EXEC DBMS_STREAMS.SET_TAG(tag => HEXTORAW('17'));