Oracle® Database PL/SQL Packages and Types Reference 11g Release 1 (11.1) Part Number B28419-01 |
|
|
View PDF |
This chapter describes the logical change record (LCR) types. In Oracle Streams, LCRs are message payloads that contain information about changes to a database. These changes can include changes to the data, which are data manipulation language (DML) changes, and changes to database objects, which are data definition language (DDL) changes.
When you use Oracle Streams, the capture process captures changes in the form of LCRs and enqueues them into a queue. These LCRs can be propagated from a queue in one database to a queue in another database. Finally, the apply process can apply LCRs at a destination database. You also have the option of creating, enqueuing, and dequeuing LCRs manually.
See Also:
Oracle Streams Concepts and Administration for more information about LCRsThis chapter contains these topics:
Table 229-1 Logical Change Record (LCR) Types
Type | Description |
---|---|
"LCR$_DDL_RECORD Type" |
Represents a data definition language (DDL) change to a database object |
"LCR$_ROW_RECORD Type" |
Represents a data manipulation language (DML) change to a database object |
"LCR$_ROW_LIST Type" |
Identifies a list of column values for a row in a table |
"LCR$_ROW_UNIT Type" |
Identifies the value for a column in a row |
These logical change record (LCR) types can be used with the following Oracle-supplied PL/SQL packages:
DBMS_APPLY_ADM
DBMS_AQ
DBMS_AQADM
DBMS_CAPTURE_ADM
DBMS_PROPAGATION_ADM
DBMS_RULE
DBMS_RULE_ADM
DBMS_STREAMS
DBMS_STREAMS_ADM
DBMS_TRANSFORM
This type represents a data definition language (DDL) change to a database object.
If you create or modify a DDL logical change record (DDL LCR), then make sure the ddl_text
is consistent with the base_table_name
, base_table_owner
, object_type
, object_owner
, object_name
, and command_type
attributes.
This section contains information about the constructor for DDL LCRs and information about the member subprograms for this type:
Summary of LCR$_DDL_RECORD Subprograms, which also include the subprograms described in "Common Subprograms for LCR$_DDL_RECORD and LCR$_ROW_RECORD"
Note:
When passing a name as a parameter to an LCR constructor, you can enclose the name in double quotes to handle names that use mixed case or lower case for database objects. For example, if a name contains any lower case characters, then you must enclose it in double quotes.
The application does not need to specify a transaction identifier or SCN when it creates an LCR because the apply process generates these values and stores them in memory. If a transaction identifier or SCN is specified in the LCR, then the apply process ignores it and assigns a new value.
Creates a SYS.LCR$_DDL_RECORD
object with the specified information.
STATIC FUNCTION CONSTRUCT( source_database_name IN VARCHAR2, command_type IN VARCHAR2, object_owner IN VARCHAR2, object_name IN VARCHAR2, object_type IN VARCHAR2, ddl_text IN CLOB, logon_user IN VARCHAR2, current_schema IN VARCHAR2, base_table_owner IN VARCHAR2, base_table_name IN VARCHAR2, tag IN RAW DEFAULT NULL, transaction_id IN VARCHAR2 DEFAULT NULL, scn IN NUMBER DEFAULT NULL) RETURN SYS.LCR$_DDL_RECORD;
LCR$_DDL_RECORD Constructor Function Parameters
Table 229-2 Constructor Function Parameters for LCR$_DDL_RECORD
Parameter | Description |
---|---|
source_database_name |
The database where the DDL statement occurred. If you do not include the domain name, then the function appends the local domain to the database name automatically. For example, if you specify DBS1 and the local domain is .NET , then the function specifies DBS1.NET automatically. This parameter should be set to a non-NULL value. |
command_type |
The type of command executed in the DDL statement. This parameter should be set to a non-NULL value.
See Also: The "SQL Command Codes" table in the Oracle Call Interface Programmer's Guide for a complete list of command types The following command types are not supported in DDL LCRs: ALTER MATERIALIZED VIEW ALTER MATERIALIZED VIEW LOG ALTER SUMMARY CREATE SCHEMA CREATE MATERIALIZED VIEW CREATE MATERIALIZED VIEW LOG CREATE SUMMARY DROP MATERIALIZED VIEW DROP MATERIALIZED VIEW LOG DROP SUMMARY RENAME The snapshot equivalents of the materialized view command types are also not supported. |
object_owner |
The user who owns the object on which the DDL statement was executed |
object_name |
The database object on which the DDL statement was executed |
object_type |
The type of object on which the DDL statement was executed.
The following are valid object types: CLUSTER FUNCTION INDEX LINK OUTLINE PACKAGE PACKAGE BODY PROCEDURE SEQUENCE SYNONYM TABLE TRIGGER TYPE USER VIEW
|
ddl_text |
The text of the DDL statement. This parameter should be set to a non-NULL value. |
logon_user |
The user whose session executed the DDL statement |
current_schema |
The schema that is used if no schema is specified explicitly for the modified database objects in ddl_text . If a schema is specified in ddl_text that differs from the one specified for current_schema , then the function uses the schema specified in ddl_text .
This parameter should be set to a non- |
base_table_owner |
If the DDL statement is a table related DDL (such as CREATE TABLE and ALTER TABLE ), or if the DDL statement involves a table (such as creating a trigger on a table), then base_table_owner specifies the owner of the table involved. Otherwise, base_table_owner is NULL . |
base_table_name |
If the DDL statement is a table related DDL (such as CREATE TABLE and ALTER TABLE ), or if the DDL statement involves a table (such as creating a trigger on a table), then base_table_name specifies the name of the table involved. Otherwise, base_table_name is NULL . |
tag |
A binary tag that enables tracking of the LCR. For example, this tag can be used to determine the original source database of the DDL statement if apply forwarding is used.
See Also: Oracle Streams Replication Administrator's Guide for more information about tags |
transaction_id |
The identifier of the transaction |
scn |
The SCN at the time when the change record for a captured LCR was written to the redo log. The SCN value is meaningless for a user-created LCR. |
Table 229-3 LCR$_DDL_RECORD Type Subprograms
Subprogram | Description |
---|---|
"EXECUTE Member Procedure" |
Executes the LCR under the security domain of the current user |
"GET_BASE_TABLE_NAME Member Function" |
Returns the base (dependent) table name |
"GET_BASE_TABLE_OWNER Member Function" |
Returns the base (dependent) table owner |
"GET_CURRENT_SCHEMA Member Function" |
Returns the default schema (user) name |
"GET_DDL_TEXT Member Procedure" |
Gets the DDL text in a CLOB |
"GET_LOGON_USER Member Function" |
Returns the logon user name |
"GET_OBJECT_TYPE Member Function" |
Returns the type of the object involved for the DDL |
"SET_BASE_TABLE_NAME Member Procedure" |
Sets the base (dependent) table name |
"SET_BASE_TABLE_OWNER Member Procedure" |
Sets the base (dependent) table owner |
"SET_CURRENT_SCHEMA Member Procedure" |
Sets the default schema (user) name |
"SET_DDL_TEXT Member Procedure" |
Sets the DDL text |
"SET_LOGON_USER Member Procedure" |
Sets the logon user name |
"SET_OBJECT_TYPE Member Procedure" |
Sets the object type |
Common Subprograms | See "Common Subprograms for LCR$_DDL_RECORD and LCR$_ROW_RECORD" for a list of subprograms common to the SYS.LCR$_ROW_RECORD and SYS.LCR$_DDL_RECORD types |
Executes the DDL LCR under the security domain of the current user. Any apply process handlers that would be run for an LCR are not run when the LCR is applied using this procedure.
Note:
TheEXECUTE
member procedure can be invoked only in an apply handler for an apply process.Syntax
MEMBER PROCEDURE EXECUTE();
GET_BASE_TABLE_NAME Member Function
Returns the base (dependent) table name.
Syntax
MEMBER FUNCTION GET_BASE_TABLE_NAME() RETURN VARCHAR2;
GET_BASE_TABLE_OWNER Member Function
Returns the base (dependent) table owner.
Syntax
MEMBER FUNCTION GET_BASE_TABLE_OWNER() RETURN VARCHAR2;
GET_CURRENT_SCHEMA Member Function
Returns the current schema name.
Syntax
MEMBER FUNCTION GET_CURRENT_SCHEMA() RETURN VARCHAR2;
GET_DDL_TEXT Member Procedure
Gets the DDL text in a CLOB
.
The following is an example of a PL/SQL procedure that uses this procedure to get the DDL text in a DDL LCR:
CREATE OR REPLACE PROCEDURE ddl_in_lcr (ddl_lcr in SYS.LCR$_DDL_RECORD) IS ddl_text CLOB; BEGIN DBMS_OUTPUT.PUT_LINE( ' -----------------------------------------' ); DBMS_OUTPUT.PUT_LINE( ' Displaying DDL text in a DDL LCR: ' ); DBMS_OUTPUT.PUT_LINE( ' -----------------------------------------' ); DBMS_LOB.CREATETEMPORARY(ddl_text, true); ddl_lcr.GET_DDL_TEXT(ddl_text); DBMS_OUTPUT.PUT_LINE('DDL text:' || ddl_text); DBMS_LOB.FREETEMPORARY(ddl_text); END; /
Note:
GET_DDL_TEXT
is a member procedure and not a member function to make it easier for you to manage the space used by the CLOB
. Notice that the previous example creates temporary space for the CLOB
and then frees the temporary space when it is no longer needed.Syntax
MEMBER FUNCTION GET_DDL_TEXT ddl_text IN/OUT CLOB);
Parameter
Table 229-4 GET_DDL_TEXT Procedure Parameter
Parameter | Description |
---|---|
ddl_text |
The DDL text in the DDL LCR |
GET_LOGON_USER Member Function
Returns the logon user name.
Syntax
MEMBER FUNCTION GET_LOGON_USER() RETURN VARCHAR2;
GET_OBJECT_TYPE Member Function
Returns the type of the object involved for the DDL.
Syntax
MEMBER FUNCTION GET_OBJECT_TYPE() RETURN VARCHAR2;
SET_BASE_TABLE_NAME Member Procedure
Sets the base (dependent) table name.
Syntax
MEMBER PROCEDURE SET_BASE_TABLE_NAME( base_table_name IN VARCHAR2);
Parameter
Table 229-5 SET_BASE_TABLE_NAME Procedure Parameter
Parameter | Description |
---|---|
base_table_name |
The name of the base table |
SET_BASE_TABLE_OWNER Member Procedure
Sets the base (dependent) table owner.
Syntax
MEMBER PROCEDURE SET_BASE_TABLE_OWNER( base_table_owner IN VARCHAR2);
Parameter
Table 229-6 SET_BASE_TABLE_OWNER Procedure Parameter
Parameter | Description |
---|---|
base_table_owner |
The name of the base owner |
SET_CURRENT_SCHEMA Member Procedure
Sets the default schema (user) name.
Syntax
MEMBER PROCEDURE SET_CURRENT_SCHEMA( current_schema IN VARCHAR2);
Parameter
Table 229-7 SET_CURRENT_SCHEMA Procedure Parameter
Parameter | Description |
---|---|
current_schema |
The name of the schema to set as the current schema. This parameter should be set to a non-NULL value. |
Sets the DDL text.
Syntax
MEMBER PROCEDURE SET_DDL_TEXT( ddl_text IN CLOB);
Parameter
Table 229-8 SET_DDL_TEXT Procedure Parameter
Parameter | Description |
---|---|
ddl_text |
The DDL text. This parameter should be set to a non-NULL value. |
SET_LOGON_USER Member Procedure
Sets the logon user name.
Syntax
MEMBER PROCEDURE SET_LOGON_USER( logon_user IN VARCHAR2);
Parameter
Table 229-9 SET_LOGON_USER Procedure Parameter
Parameter | Description |
---|---|
logon_user |
The name of the schema to set as the logon user |
SET_OBJECT_TYPE Member Procedure
Sets the object type.
Syntax
MEMBER PROCEDURE SET_OBJECT_TYPE( object_type IN VARCHAR2);
Parameter
Table 229-10 SET_OBJECT_TYPE Procedure Parameter
Parameter | Description |
---|---|
object_type |
The object type.
The following are valid object types: CLUSTER FUNCTION INDEX LINK OUTLINE PACKAGE PACKAGE BODY PROCEDURE SEQUENCE SYNONYM TABLE TRIGGER TYPE USER VIEW
|
This type represents a data manipulation language (DML) change to a row in a table. This type uses the LCR$_ROW_LIST
type.
If you create or modify a row logical change record (row LCR), then make sure the command_type
attribute is consistent with the presence or absence of old column values and the presence or absence of new column values.
This section contains information about the constructor for DDL LCRs and information about the member subprograms for this type:
Summary of LCR$_ROW_RECORD Subprograms, which also include the subprograms described in Common Subprograms for LCR$_DDL_RECORD and LCR$_ROW_RECORD
Note:
When passing a name as a parameter to an LCR constructor, you can enclose the name in double quotes to handle names that use mixed case or lower case for database objects. For example, if a name contains any lower case characters, then you must enclose it in double quotes.
The application does not need to specify a transaction identifier or SCN when it creates an LCR because the apply process generates these values and stores them in memory. If a transaction identifier or SCN is specified in the LCR, then the apply process ignores it and assigns a new value.
See Also:
"LCR$_ROW_LIST Type"Creates a SYS.LCR$_ROW_RECORD
object with the specified information.
STATIC FUNCTION CONSTRUCT( source_database_name IN VARCHAR2, command_type IN VARCHAR2, object_owner IN VARCHAR2, object_name IN VARCHAR2, tag IN RAW DEFAULT NULL, transaction_id IN VARCHAR2 DEFAULT NULL, scn IN NUMBER DEFAULT NULL, old_values IN SYS.LCR$_ROW_LIST DEFAULT NULL, new_values IN SYS.LCR$_ROW_LIST DEFAULT NULL) RETURN SYS.LCR$_ROW_RECORD;
LCR$_ROW_RECORD Constructor Function Parameters
Table 229-11 Constructor Function Parameters for LCR$_ROW_RECORD
Parameter | Description |
---|---|
source_database_name |
The database where the row change occurred. If you do not include the domain name, then the function appends the local domain to the database name automatically. For example, if you specify DBS1 and the local domain is .NET , then the function specifies DBS1.NET automatically. This parameter should be set to a non-NULL value. |
command_type |
The type of command executed in the DML statement. This parameter should be set to a non-NULL value.
Valid values are the following: INSERT UPDATE DELETE LOB ERASE LOB WRITE LOB TRIM If If If If |
object_owner |
The user who owns the table on which the row change occurred. This parameter should be set to a non-NULL value. |
object_name |
The table on which the DML statement was executed. This parameter should be set to a non-NULL value. |
tag |
A binary tag that enables tracking of the LCR. For example, this tag can be used to determine the original source database of the DML change when apply forwarding is used.
See Also: Oracle Streams Replication Administrator's Guide for more information about tags |
transaction_id |
The identifier of the transaction |
scn |
The SCN at the time when the change record was written to the redo log. The SCN value is meaningless for a user-created LCR. |
old_values |
The column values for the row before the DML change. If the DML statement is an UPDATE or a DELETE statement, then this parameter contains the values of columns in the row before the DML statement. If the DML statement is an INSERT statement, then there are no old values. |
new_values |
The column values for the row after the DML change. If the DML statement is an UPDATE or an INSERT statement, then this parameter contains the values of columns in the row after the DML statement. If the DML statement is a DELETE statement, then there are no new values.
If the LCR reflects a LOB operation, then this parameter contains the supplementally logged columns and any relevant LOB information. |
Table 229-12 LCR$_ROW_RECORD Type Subprograms
Subprogram | Description |
---|---|
"ADD_COLUMN Member Procedure" |
Adds the value as old or new, depending on the value type specified, for the column |
"CONVERT_LONG_TO_LOB_CHUNK Member Procedure" |
Converts LONG data in a row LCR into fixed width CLOB , or converts LONG RAW data in a row LCR into a BLOB |
"DELETE_COLUMN Member Procedure" |
Deletes the old value, the new value, or both, for the specified column, depending on the value type specified |
"EXECUTE Member Procedure" |
Executes the LCR under the security domain of the current user |
"GET_LOB_INFORMATION Member Function" |
Gets the LOB information for the column |
"GET_LOB_OFFSET Member Function" |
Returns the LOB offset for the specified column |
"GET_LOB_OPERATION_SIZE Member Function" |
Gets the operation size for the LOB column |
"GET_LONG_INFORMATION Member Function" |
Gets the LONG information for the column |
"GET_VALUE Member Function" |
Returns the old or new value for the specified column, depending on the value type specified |
"GET_VALUES Member Function" |
Returns a list of old or new values, depending on the value type specified |
"GET_XML_INFORMATION Member Function" |
Returns the XML information for the specified column |
"RENAME_COLUMN Member Procedure" |
Renames a column in an LCR |
"SET_LOB_INFORMATION Member Procedure" |
Sets LOB information for the column |
"SET_LOB_OFFSET Member Procedure" |
Sets the LOB offset for the specified column |
"SET_LOB_OPERATION_SIZE Member Procedure" |
Sets the operation size for the LOB column |
"SET_VALUE Member Procedure" |
Overwrites the value of the specified column |
"SET_VALUES Member Procedure" |
Replaces the existing old or new values for the LCR, depending on the value type specified |
"SET_XML_INFORMATION Member Procedure" |
Sets the XML information for the column |
Common Subprograms | See Common Subprograms for LCR$_DDL_RECORD and LCR$_ROW_RECORD for a list of subprograms common to the SYS.LCR$_ROW_RECORD and SYS.LCR$_DDL_RECORD types |
Adds the value as old or new, depending on the value type specified, for the column. An error is raised if a value of the same type already exists for the column.
Note:
To set a column value that already exists, runSET_VALUE
.See Also:
"SET_VALUE Member Procedure"Considerations for LOB Columns
When processing a row LCR with LOB columns with a DML handler or error handler and the handler is using LOB assembly (the assemble_lobs
parameter is set to TRUE
for the handler), you use this member procedure in the handler procedure to add a LOB column to a row LCR. If assemble_lobs
is set to FALSE
for the handler, then you cannot use this member procedure to add a LOB column to a row LCR.
To use a DML or error handler to add a LOB column, specify the LOB locator for the column_value
parameter in the member procedure. The ADD_COLUMN
member procedure verifies that an ANYDATA
encapsulated LOB locator is processed with a DML or error handler that is using LOB assembly. An error is raised under the following conditions:
The handler attempts to enqueue a row LCR with an ANYDATA
encapsulated LOB locator.
An attempt is made to add an LOB column that is set incorrectly.
If an error is raised because of one of these conditions, then the transaction that includes the row LCR is moved to the error queue, and the LOB is represented by the original (nonassembled) row LCRs.
Note:
Database compatibility must be 10.2.0
or higher to use LOB assembly.
When you are processing a row LCR with a rule-based transformation, you cannot use this member procedure to add a LOB column.
When you are processing a row LCR with a rule-based transformation, DML handler, or error handler, you cannot use this member procedure to add a LONG
or LONG
RAW
column.
Syntax
MEMBER PROCEDURE ADD_COLUMN( value_type IN VARCHAR2, column_name IN VARCHAR2, column_value IN ANYDATA);
Parameters
Table 229-13 ADD_COLUMN Procedure Parameters
Parameter | Description |
---|---|
value_type |
The type of value to add for the column. Specify old to add the old value of the column. Specify new to add the new value of the column. |
column_name |
The column name. This name is not validated. An error can be raised during application of the LCRs if an invalid name is specified. |
column_value |
The value of the column. If NULL , then this procedure raises an error.
If the member procedure is used in a DML handler or error handler that uses LOB assembly, then a LOB locator can be specified. A |
CONVERT_LONG_TO_LOB_CHUNK Member Procedure
Converts LONG
data in a row LCR into a CLOB
, or converts LONG
RAW
data in a row LCR into a BLOB
.
This procedure can change the operation code from LONG
WRITE
to LOB
WRITE
for the row LCR.
This member procedure can be used in rule-based transformations.
The following restrictions apply to this member procedure:
This member procedure cannot be used in apply handlers.
LONG
data can be sent as a part of a row LCR with one of the following operation codes: INSERT
, UPDATE
, or LONG_WRITE
. Because LONG
data can be sent in multiple pieces, make sure that this method is invoked on either none or all LONG
pieces.
LOB to LONG
conversion is not supported.
A row LCR on which this procedure is executed must have been created by a capture process. That is, this procedure does not support persistent row LCRs.
Syntax
MEMBER PROCEDURE CONVERT_LONG_TO_LOB_CHUNK();
DELETE_COLUMN Member Procedure
Deletes the old value, the new value, or both, for the specified column, depending on the value type specified.
Syntax
MEMBER PROCEDURE DELETE_COLUMN( column_name IN VARCHAR2, value_type IN VARCHAR2 DEFAULT '*');
Parameters
Table 229-14 DELETE_COLUMN Procedure Parameters
Parameter | Description |
---|---|
column_name |
The column name. An error is raised if the column does not exist in the LCR. |
value_type |
The type of value to delete for the column. Specify old to delete the old value of the column. Specify new to delete the new value of the column. If * is specified, then the procedure deletes both the old and new values. |
Executes the row LCR under the security domain of the current user. Any apply process handlers that would be run for an LCR are not run when the LCR is applied using this procedure.
This member procedure can be run on a row LCR under any of the following conditions:
The LCR is being processed by an apply handler.
The LCR is in a queue and was last enqueued by an apply process, an application, or a user.
The LCR has been constructed using the LCR$_ROW_RECORD
constructor function but has not been enqueued.
The LCR is in the error queue.
Note:
A custom rule-based transformation should not run this member procedure on a row LCR. Doing so could execute the row LCR outside of its transactional context.Considerations for LOB Columns
When processing a row LCR with LOB columns with a DML handler or error handler, and the handler is using LOB assembly (the assemble_lobs
parameter is set to TRUE
for the handler), this member procedure executes the assembled row LCR. An assembled row LCR represents a LOB value with a LOB locator or NULL
.
If assemble_lobs
is set to FALSE
for the handler, then this member procedure executes the nonassembled row LCRs. Nonassembled row LCRs represent LOB values with VARCHAR2
and RAW
datatypes. These nonassembled row LCRs might have been modified by the handler.
An error is raised under the following conditions:
A DML or error handler configured with assemble_lobs
set to FALSE
attempts to execute a row LCR that contains a LOB locator.
A DML or error handler configured with assemble_lobs
set to TRUE
attempts to execute a row LCR that contains one or more LOB values represented with VARCHAR2
or RAW
datatypes.
If an error is raised because of one of these conditions, then the transaction that includes the row LCR is moved to the error queue, and the LOB is represented by the original (nonassembled) row LCRs.
Syntax
MEMBER PROCEDURE EXECUTE( conflict_resolution IN BOOLEAN);
Parameters
Table 229-15 EXECUTE Procedure Parameters
Parameter | Description |
---|---|
conflict_resolution |
If TRUE , then any conflict resolution defined for the table using the SET_UPDATE_CONFLICT_HANDLER procedure in the DBMS_APPLY_ADM package is used to resolve conflicts resulting from the execution of the LCR.
If An error is raised if this parameter is not specified or is set to |
GET_LOB_INFORMATION Member Function
Gets the LOB information for the column.
The return value can be one of the following:
DBMS_LCR.NOT_A_LOB CONSTANT NUMBER := 1; DBMS_LCR.NULL_LOB CONSTANT NUMBER := 2; DBMS_LCR.INLINE_LOB CONSTANT NUMBER := 3; DBMS_LCR.EMPTY_LOB CONSTANT NUMBER := 4; DBMS_LCR.LOB_CHUNK CONSTANT NUMBER := 5; DBMS_LCR.LAST_LOB_CHUNK CONSTANT NUMBER := 6;
Returns NULL
if the specified column does not exist.
If the command type of the row LCR is UPDATE
, then specifying 'Y'
for the use_old
parameter is a convenient way to get the value of the columns.
Syntax
MEMBER FUNCTION GET_LOB_INFORMATION( value_type IN VARCHAR2, column_name IN VARCHAR2, use_old IN VARCHAR2 DEFAULT 'Y') RETURN NUMBER;
Parameters
Table 229-16 GET_LOB_INFORMATION Function Parameters
Parameter | Description |
---|---|
value_type |
The type of value to return for the column, either old or new |
column_name |
The name of the column |
use_old |
If Y and value_type is new , and no new value exists, then the function returns the corresponding old value. If N and value_type is new , then the function does not return the old value if no new value exists.
If
|
GET_LOB_OFFSET Member Function
Gets the LOB offset for the specified column in the number of characters for CLOB
columns and the number of bytes for BLOB
columns. Returns a non-NULL
value only if all of the following conditions are met:
The value exists for the column
The column value is an out-of-line LOB. That is, the information is DBMS_LCR.LAST_LOB_CHUNK
or DBMS_LCR.LOB_CHUNK
The command type is LOB
ERASE
or LOB
WRITE
Otherwise, returns NULL
.
Syntax
GET_LOB_OFFSET( value_type IN VARCHAR2, column_name IN VARCHAR2) RETURN NUMBER;
Parameters
Table 229-17 GET_LOB_OFFSET Procedure Parameters
Parameter | Description |
---|---|
value_type |
The type of value to return for the column. Currently, only new can be specified. |
column_name |
The name of the LOB column |
GET_LOB_OPERATION_SIZE Member Function
Gets the operation size for the LOB column in the number of characters for CLOB
columns and the number of bytes for BLOB
columns. Returns a non-NULL
value only if all of the following conditions are met:
The value exists for the column
The column value is an out-of-line LOB
The command type is LOB
ERASE
or LOB
TRIM
The information is DBMS_LCR.LAST_LOB_CHUNK
Otherwise, returns NULL
.
Syntax
MEMBER FUNCTION GET_LOB_OPERATION_SIZE( value_type IN VARCHAR2, column_name IN VARCHAR2) RETURN NUMBER,
Parameters
Table 229-18 GET_LOB_OPERATION_SIZE Function Parameters
Parameter | Description |
---|---|
value_type |
The type of value to return for the column. Currently, only new can be specified. |
column_name |
The name of the LOB column |
GET_LONG_INFORMATION Member Function
Gets the LONG information for the column.
The return value can be one of the following:
DBMS_LCR.NOT_A_LONG CONSTANT NUMBER := 1; DBMS_LCR.NULL_LONG CONSTANT NUMBER := 2; DBMS_LCR.INLINE_LONG CONSTANT NUMBER := 3; DBMS_LCR.LONG_CHUNK CONSTANT NUMBER := 4; DBMS_LCR.LAST_LONG_CHUNK CONSTANT NUMBER := 5;
Returns NULL
if the specified column does not exist.
If the command type of the row LCR is UPDATE
, then specifying 'Y'
for the use_old
parameter is a convenient way to get the value of the columns.
Syntax
MEMBER FUNCTION GET_LONG_INFORMATION( value_type IN VARCHAR2, column_name IN VARCHAR2, use_old IN VARCHAR2 DEFAULT 'Y') RETURN NUMBER;
Parameters
Table 229-19 GET_LONG_INFORMATION Function Parameters
Parameter | Description |
---|---|
value_type |
The type of value to return for the column, either old or new |
column_name |
The name of the column |
use_old |
If Y and value_type is new , and no new value exists, then the function returns the corresponding old value. If N and value_type is new , then the function does not return the old value if no new value exists.
If
|
Returns the old or new value for the specified column, depending on the value type specified.
If the command type of the row LCR is UPDATE
, then specifying 'Y'
for the use_old
parameter is a convenient way to get the value of a column.
Syntax
MEMBER FUNCTION GET_VALUE( value_type IN VARCHAR2, column_name IN VARCHAR2, use_old IN VARCHAR2 DEFAULT 'Y') RETURN ANYDATA;
Parameters
Table 229-20 GET_VALUE Function Parameters
Parameter | Description |
---|---|
value_type |
The type of value to return for the column. Specify old to get the old value for the column. Specify new to get the new value for the column. |
column_name |
The column name. If the column is present and has a NULL value, then the function returns an ANYDATA instance containing a NULL value. If the column value is absent, then the function returns a NULL . |
use_old |
If Y and value_type is new , and no new value exists, then the function returns the corresponding old value.
If If
|
Returns a list of old or new values, depending on the value type specified.
If the command type of the row LCR is UPDATE
, then specifying 'Y'
for the use_old
parameter is a convenient way to get the values of all columns.
Syntax
MEMBER FUNCTION GET_VALUES( value_type IN VARCHAR2, use_old IN VARCHAR2 DEFAULT 'Y') RETURN SYS.LCR$_ROW_LIST;
Parameters
Table 229-21 GET_VALUES Function Parameters
Parameter | Description |
---|---|
value_type |
The type of values to return. Specify old to return a list of old values. Specify new to return a list of new values. |
use_old |
If Y and value_type is new , then the function returns a list of all new values in the LCR. If a new value does not exist in the list, then the function returns the corresponding old value. Therefore, the returned list contains all existing new values and old values for the new values that do not exist.
If If
|
GET_XML_INFORMATION Member Function
Returns the XML information for the specified column.
The return value can be one of the following:
DBMS_LCR.NOT_XML CONSTANT NUMBER := 1; DBMS_LCR.XML_DOC CONSTANT NUMBER := 2; DBMS_LCR.XML_DIFF CONSTANT NUMBER := 3;
DBMS_LCR.NOT_XML
indicates that the column is not an XMLType
column. DBMS_LCR.XML_DOC
indicates that the column contains an XML document. DBMS_LCR.XML_DIFF
indicates that the column contains differences between old and new XML documents for an update operation.
Returns NULL
if the specified column does not exist.
Syntax
MEMBER FUNCTION GET_XML_INFORMATION( column_name IN VARCHAR2) RETURN NUMBER,
Parameter
Table 229-22 GET_XML_INFORMATION Function Parameter
Parameter | Description |
---|---|
column_name |
The column name |
RENAME_COLUMN Member Procedure
Renames a column in an LCR.
Syntax
MEMBER PROCEDURE RENAME_COLUMN( from_column_name IN VARCHAR2, to_column_name IN VARCHAR2, value_type IN VARCHAR2 DEFAULT '*');
Parameters
Table 229-23 RENAME_COLUMN Procedure Parameters
Parameter | Description |
---|---|
from_column_name |
The existing column name |
to_column_name |
The new column name. An error is raised if a column with the specified name already exists. |
value_type |
The type of value for which to rename the column.
Specify Specify If |
SET_LOB_INFORMATION Member Procedure
Sets LOB information for the column.
Note:
When you are processing a row LCR with a rule-based transformation, DML handler, or error handler, you cannot use this member procedure.Syntax
MEMBER PROCEDURE SET_LOB_INFORMATION( value_type IN VARCHAR2, column_name IN VARCHAR2, lob_information IN NUMBER);
Parameters
Table 229-24 SET_LOB_INFORMATION Procedure Parameters
Parameter | Description |
---|---|
value_type |
The type of value to set for the column, either old or new. Specify old only if lob_information is set to DBMS_LCR.NOT_A_LOB . |
column_name |
The name of the column. An exception is raised if the column value does not exist. You might need to set this parameter for non-LOB columns. |
lob_information |
Specify one of the following values:
DBMS_LCR.NOT_A_LOB CONSTANT NUMBER := 1; DBMS_LCR.NULL_LOB CONSTANT NUMBER := 2; DBMS_LCR.INLINE_LOB CONSTANT NUMBER := 3; DBMS_LCR.EMPTY_LOB CONSTANT NUMBER := 4; DBMS_LCR.LOB_CHUNK CONSTANT NUMBER := 5; DBMS_LCR.LAST_LOB_CHUNK CONSTANT NUMBER := 6; |
SET_LOB_OFFSET Member Procedure
Sets the LOB offset for the specified column in the number of characters for CLOB
columns and the number of bytes for BLOB
columns.
Note:
When you are processing a row LCR with a rule-based transformation, DML handler, or error handler, you cannot use this member procedure.Syntax
MEMBER PROCEDURE SET_LOB_OFFSET( value_type IN VARCHAR2, column_name IN VARCHAR2, lob_offset IN NUMBER);
Parameters
Table 229-25 SET_LOB_OFFSET Procedure Parameters
Parameter | Description |
---|---|
value_type |
The type of value to set for the column. Currently, only new can be specified. |
column_name |
The column name. An error is raised if the column value does not exist in the LCR. |
lob_offset |
The LOB offset number. Valid values are NULL or a positive integer less than or equal to DBMS_LOB.LOBMAXSIZE . |
SET_LOB_OPERATION_SIZE Member Procedure
Sets the operation size for the LOB column in the number of characters for CLOB
columns and bytes for BLOB
columns.
Note:
When you are processing a row LCR with a rule-based transformation, DML handler, or error handler, you cannot use this member procedure.Syntax
MEMBER PROCEDURE SET_LOB_OPERATION_SIZE( value_type IN VARCHAR2, column_name IN VARCHAR2, lob_operation_size IN NUMBER);
Parameters
Table 229-26 SET_LOB_OPERATION_SIZE Procedure Parameters
Parameter | Description |
---|---|
value_type |
The type of value to set for the column. Currently, only new can be specified. |
column_name |
The name of the LOB column. An exception is raised if the column value does not exist in the LCR. |
lob_operation_size |
If lob_information for the LOB is or will be DBMS_LCR.LAST_LOB_CHUNK , then this parameter can be set to either a valid LOB ERASE value or a valid LOB TRIM value. A LOB ERASE value must be a positive integer less than or equal to DBMS_LOB.LOBMAXSIZE . A LOB TRIM value must be a nonnegative integer less than or equal to DBMS_LOB.LOBMAXSIZE .
Otherwise, set to |
Overwrites the old or new value of the specified column.
One reason to overwrite an old value for a column is to resolve an error that resulted from a conflict.
Note:
To add a column to a row LCR, runADD_COLUMN
.See Also:
"ADD_COLUMN Member Procedure"Considerations for LOB Columns
When processing a row LCR with LOB columns with a DML handler or error handler, and the handler is using LOB assembly (the assemble_lobs
parameter is set to TRUE
for the handler), you can use this member procedure in the handler procedure on a LOB column in a row LCR. If assemble_lobs
is set to FALSE
for the handler, then you cannot use this member procedure on a LOB column.
To use a DML or error handler to set the value of a LOB column, specify the LOB locator for the column_value
parameter in the member procedure. The SET_VALUE
member procedure verifies that an ANYDATA
encapsulated LOB locator is processed with a DML or error handler that is using LOB assembly. An error is raised under the following conditions:
The handler attempts to enqueue a row LCR with an ANYDATA
encapsulated LOB locator.
An attempt is made to set a LOB column incorrectly.
If an error is raised because of one of these conditions, then the transaction that includes the row LCR is moved to the error queue, and the LOB is represented by the original (nonassembled) row LCRs.
Note:
Database compatibility must be 10.2.0
or higher to use LOB assembly.
When you are processing a row LCR with a rule-based transformation, you cannot use this member procedure on a LOB column.
When you are processing a row LCR with a rule-based transformation, DML handler, or error handler, you cannot use this member procedure on a LONG
or LONG
RAW
column.
Considerations for XMLType Columns
When processing a row LCR with XMLType
columns with a DML handler or error handler, any XMLType
columns and LOB columns in the LCR are always assembled using LOB assembly. You can use this member procedure in the handler procedure on a row LCR that contains one or more XMLType
columns.
To use a DML or error handler to set the value an XMLType
column, specify the XMLType
for the column_value
parameter. The SET_VALUE
member procedure verifies that an ANYDATA
encapsulated XMLType
is processed with a DML or error handler. An error is raised under the following conditions:
The handler attempts to enqueue a row LCR with an ANYDATA
encapsulated XMLType
.
An attempt is made to set a XMLType
column incorrectly.
If an error is raised because of one of these conditions, then the transaction that includes the row LCR is moved to the error queue, and the XMLType
column is represented by the original (nonassembled) row LCRs.
Note:
Database compatibility must be 11.1.0
or higher to process row LCRs with XMLType
columns.
When you are processing a row LCR with a rule-based transformation, you cannot use this member procedure on XMLType
columns.
Syntax
MEMBER PROCEDURE SET_VALUE( value_type IN VARCHAR2, column_name IN VARCHAR2, column_value IN ANYDATA);
Parameters
Table 229-27 SET_VALUE Procedure Parameters
Parameter | Description |
---|---|
value_type |
The type of value to set. Specify old to set the old value of the column. Specify new to set the new value of the column. |
column_name |
The column name. An error is raised if the specified column_value does not exist in the LCR for the specified column_type . |
column_value |
The new value of the column. If NULL is specified, then this procedure raises an error. To set the value to NULL , encapsulate the NULL in an ANYDATA instance.
If the member procedure is used in a DML handler or error handler that uses LOB assembly, then specify a LOB locator for LOB columns. |
Replaces all old values or all new values for the LCR, depending on the value type specified.
Considerations for LOB Columns
When processing a row LCR with LOB columns with a DML handler or error handler and the handler is using LOB assembly (the assemble_lobs
parameter is set to TRUE
for the handler), you can use this member procedure in the handler procedure on a row LCR that contains one or more LOB columns. If assemble_lobs
is set to FALSE
for the handler, then you cannot use this member procedure on a row LCR.
To use a DML or error handler to set the value of one or more LOB columns in a row LCR, specify a LOB locator for each LOB column in the value_list
parameter. The SET_VALUES
member procedure verifies that an ANYDATA
encapsulated LOB locator is processed with a DML or error handler that is using LOB assembly. An error is raised under the following conditions:
The handler attempts to enqueue a row LCR with an ANYDATA
encapsulated LOB locator.
An attempt is made to set a LOB column incorrectly.
If an error is raised because of one of these conditions, then the transaction that includes the row LCR is moved to the error queue, and the LOB columns are represented by the original (nonassembled) row LCRs.
Note:
Database compatibility must be 10.2.0
or higher to use LOB assembly.
When you are processing a row LCR with a rule-based transformation, you cannot use this member procedure on LOB columns.
When you are processing a row LCR with a rule-based transformation, DML handler, or error handler, you cannot use this member procedure on LONG
or LONG
RAW
columns.
Considerations for XMLType Columns
When processing a row LCR with XMLType
columns with a DML handler or error handler, any XMLType
and LOB columns in the LCR are always assembled using LOB assembly. You can use this member procedure in the handler procedure on a row LCR that contains one or more XMLType
columns.
To use a DML or error handler to set the value of one or more XMLType
columns in a row LCR, specify an XMLType
for each XMLType
column in the value_list
parameter. The SET_VALUES
member procedure verifies that an ANYDATA
encapsulated XMLType
is processed with a DML or error handler. An error is raised under the following conditions:
The handler attempts to enqueue a row LCR with an ANYDATA
encapsulated XMLType
.
An attempt is made to set a XMLType
incorrectly.
If an error is raised because of one of these conditions, then the transaction that includes the row LCR is moved to the error queue, and the XMLType
columns are represented by the original (nonassembled) row LCRs.
Note:
Database compatibility must be 11.1.0
or higher to process row LCRs with XMLType
columns.
When you are processing a row LCR with a rule-based transformation, you cannot use this member procedure on XMLType
columns.
Syntax
MEMBER PROCEDURE SET_VALUES( value_type IN VARCHAR2, value_list IN SYS.LCR$_ROW_LIST);
Parameters
Table 229-28 SET_VALUES Procedure Parameters
Parameter | Description |
---|---|
value_type |
The type of values to replace. Specify old to replace the old values. Specify new to replace the new values. |
value_list |
List of values to replace the existing list. Use a NULL or an empty list to remove all values.
If the member procedure is used in a DML handler or error handler that uses LOB assembly, then specify one or more LOB locators for LOB columns. |
SET_XML_INFORMATION Member Procedure
Sets the XML information for the column.
Syntax
MEMBER PROCEDURE SET_XML_INFORMATION( column_name IN VARCHAR2, xml_information IN NUMBER);
Parameters
Table 229-29 SET_XML_INFORMATION Procedure Parameters
Parameter | Description |
---|---|
column_name |
The name of the column. An exception is raised if the column value does not exist in the LCR. |
xml_information |
Specify one of the following values:
DBMS_LCR.NOT_XML CONSTANT NUMBER := 1; DBMS_LCR.XML_DOC CONSTANT NUMBER := 2; DBMS_LCR.XML_DIFF CONSTANT NUMBER := 3;
|
The following functions and procedures are common to both the LCR$_DDL_RECORD
and LCR$_ROW_RECORD
type.
See Also:
For descriptions of the subprograms for these types that are exclusive to each type:Table 229-30 Summary of Common Subprograms for DDL and Row LCR Types
Subprogram | Description |
---|---|
"GET_COMMAND_TYPE Member Function" |
Returns the command type of the logical change record (LCR) |
"GET_COMMIT_SCN Member Function" |
Returns the commit system change number (SCN) of the transaction to which the current LCR belongs |
"GET_COMPATIBLE Member Function" |
Returns the minimal database compatibility required to support the LCR |
"GET_EXTRA_ATTRIBUTE Member Function" |
Returns the value for the specified extra attribute in the LCR |
"GET_OBJECT_NAME Member Function" |
Returns the name of the object that is changed by the LCR |
"GET_OBJECT_OWNER Member Function" |
Returns the owner of the object that is changed by the LCR |
"GET_SCN Member Function" |
Returns the system change number (SCN) of the LCR |
"GET_SOURCE_DATABASE_NAME Member Function" |
Returns the source database name. |
"GET_SOURCE_TIME Member Function" |
Returns the time when the change in an LCR captured by a capture process was generated in the redo log of the source database, or the time when a persistent LCR was created. |
"GET_TAG Member Function" |
Returns the tag for the LCR |
"GET_TRANSACTION_ID Member Function" |
Returns the transaction identifier of the LCR |
"IS_NULL_TAG Member Function" |
Returns Y if the tag for the LCR is NULL , or returns N if the tag for the LCR is not NULL |
"SET_COMMAND_TYPE Member Procedure" |
Sets the command type in the LCR |
"SET_EXTRA_ATTRIBUTE Member Procedure" |
Sets the value for the specified extra attribute in the LCR |
"SET_OBJECT_NAME Member Procedure" |
Sets the name of the object that is changed by the LCR |
"SET_OBJECT_OWNER Member Procedure" |
Sets the owner of the object that is changed by the LCR |
"SET_SOURCE_DATABASE_NAME Member Procedure" |
Sets the source database name of the object that is changed by the LCR |
"SET_TAG Member Procedure" |
Sets the tag for the LCR |
GET_COMMAND_TYPE Member Function
Returns the command type of the LCR.
See Also:
The "SQL Command Codes" table in the Oracle Call Interface Programmer's Guide for a complete list of command typesSyntax
MEMBER FUNCTION GET_COMMAND_TYPE() RETURN VARCHAR2;
GET_COMMIT_SCN Member Function
Returns the commit system change number (SCN) of the transaction to which the current LCR belongs.
The commit SCN for a transaction is available only during apply or during error transaction execution. This function can be used only in a DML handler, DDL handler, or error handler. Such a handler can use the SCN obtained by this procedure to flashback to the transaction commit time for an LCR. In this case, the flashback must be performed at the source database for the LCR.
The commit SCN might not be available for an LCR that is part of an incomplete transaction. For example, persistent LCRs might not have a commit SCN. If the commit SCN is not available for an LCR, then this function returns NULL
.
Syntax
MEMBER FUNCTION GET_COMMIT_SCN() RETURN NUMBER;
GET_COMPATIBLE Member Function
Returns the minimal database compatibility required to support the LCR. You control the compatibility of an Oracle database using the COMPATIBLE
initialization parameter.
The return value for this function can be one of the following:
Return Value | COMPATIBLE Initialization Parameter Equivalent |
---|---|
DBMS_STREAMS.COMPATIBLE_9_2 |
9.2.0 |
DBMS_STREAMS.COMPATIBLE_10_1 |
10.1.0 |
DBMS_STREAMS.COMPATIBLE_10_2 |
10.2.0 |
DBMS_STREAMS.COMPATIBLE_11_1 |
11.1.0 |
DDL LCRs always return DBMS_STREAMS.COMPATIBLE_9_2
.
You can use the following functions for constant compatibility return values:
The DBMS_STREAMS.COMPATIBLE_9_2
function returns the DBMS_STREAMS.COMPATIBLE_9_2
constant.
The DBMS_STREAMS.COMPATIBLE_10_1
function returns DBMS_STREAMS.COMPATIBLE_10_1
constant.
The DBMS_STREAMS.COMPATIBLE_10_2
function returns DBMS_STREAMS.COMPATIBLE_10_2
constant.
The DBMS_STREAMS.COMPATIBLE_11_1
function returns DBMS_STREAMS.COMPATIBLE_11_1
constant.
You can use these functions with the GET_COMPATIBLE
member function for an LCR in rule conditions and apply handlers.
Note:
You can determine which database objects in a database are not supported by Oracle Streams by querying theDBA_STREAMS_UNSUPPORTED
data dictionary view.See Also:
Oracle Streams Concepts and Administration for examples of rules that discard changes that are not supported by Oracle Streams
Chapter 129, "DBMS_STREAMS" and Chapter 130, "DBMS_STREAMS_ADM"
Oracle Database Reference and Oracle Database Upgrade Guide for more information about the COMPATIBLE
initialization parameter
Syntax
MEMBER FUNCTION GET_COMPATIBLE() RETURN NUMBER;
GET_EXTRA_ATTRIBUTE Member Function
Returns the value for the specified extra attribute in the LCR. The returned extra attribute is contained within an ANYDATA
instance. You can use the INCLUDE_EXTRA_ATTRIBUTE
procedure in the DBMS_CAPTURE_ADM
package to instruct a capture process to capture one or more extra attributes.
See Also:
"INCLUDE_EXTRA_ATTRIBUTE Procedure"Syntax
MEMBER FUNCTION GET_EXTRA_ATTRIBUTE( attribute_name IN VARCHAR2) RETURN ANYDATA;
Parameters
Table 229-31 GET_EXTRA_ATTRIBUTE Function Parameter
Parameter | Description |
---|---|
attribute_name |
The name of the extra attribute to return. Valid names are:
An error is raised if the specified If no value exists for the specified extra attribute, then the function returns a See Also: Oracle Database PL/SQL Language Reference for more information about the current user |
GET_OBJECT_NAME Member Function
Returns the name of the object that is changed by the LCR.
Syntax
MEMBER FUNCTION GET_OBJECT_NAME() RETURN VARCHAR2;
GET_OBJECT_OWNER Member Function
Returns the owner of the object that is changed by the LCR.
Syntax
MEMBER FUNCTION GET_OBJECT_OWNER() RETURN VARCHAR2;
Returns the system change number (SCN) of the LCR.
Syntax
MEMBER FUNCTION GET_SCN() RETURN NUMBER;
GET_SOURCE_DATABASE_NAME Member Function
Returns the global name of the source database name. The source database is the database where the change occurred.
Syntax
MEMBER FUNCTION GET_SOURCE_DATABASE_NAME() RETURN VARCHAR2;
GET_SOURCE_TIME Member Function
Returns the time when the change in an LCR captured by a capture process was generated in the redo log of the source database, or the time when a persistent LCR was created.
Syntax
MEMBER FUNCTION GET_SOURCE_TIME() RETURN DATE;
Returns the tag for the LCR. An LCR tag is a binary tag that enables tracking of the LCR. For example, this tag can be used to determine the original source database of the DML or DDL change when apply forwarding is used.
See Also:
Oracle Streams Replication Administrator's Guide for more information about tagsSyntax
MEMBER FUNCTION GET_TAG() RETURN RAW;
GET_TRANSACTION_ID Member Function
Returns the transaction identifier of the LCR.
Syntax
MEMBER FUNCTION GET_TRANSACTION_ID() RETURN VARCHAR2;
Returns Y
if the tag for the LCR is NULL
, or returns N
if the tag for the LCR is not NULL
.
See Also:
Oracle Streams Replication Administrator's Guide for more information about tagsSyntax
MEMBER FUNCTION IS_NULL_TAG() RETURN VARCHAR2;
SET_COMMAND_TYPE Member Procedure
Sets the command type in the LCR. If the command type specified cannot be interpreted, then this procedure raises an error. For example, changing INSERT
to GRANT
would raise an error.
See Also:
The description of the command_type
parameter in "LCR$_DDL_RECORD Constructor Function Parameters"
The description of the command_type parameter in "LCR$_ROW_RECORD Type"
The "SQL Command Codes" table in the Oracle Call Interface Programmer's Guide for a complete list of command types
Syntax
MEMBER PROCEDURE SET_COMMAND_TYPE( command_type IN VARCHAR2);
Parameter
Table 229-32 SET_COMMAND_TYPE Procedure Parameter
Parameter | Description |
---|---|
command_type |
The command type. This parameter should be set to a non-NULL value. |
SET_EXTRA_ATTRIBUTE Member Procedure
Sets the value for the specified extra attribute in the LCR. You can use the INCLUDE_EXTRA_ATTRIBUTE
procedure in the DBMS_CAPTURE_ADM
package to instruct a capture process to capture one or more extra attributes.
See Also:
"INCLUDE_EXTRA_ATTRIBUTE Procedure"Syntax
MEMBER PROCEDURE SET_EXTRA_ATTRIBUTE( attribute_name IN VARCHAR2, attribute_value IN ANYDATA);
Parameters
Table 229-33 SET_EXTRA_ATTRIBUTE Procedure Parameter
Parameter | Description |
---|---|
attribute_name |
The name of the extra attribute to set. Valid names are:
An error is raised if the specified See Also: Oracle Database PL/SQL Language Reference for more information about the current user |
attribute_value |
The value to which the specified extra attribute is set. If set to NULL , then this procedure removes the specified extra attribute from the LCR. To set to NULL , encapsulate the NULL in an ANYDATA instance. |
SET_OBJECT_NAME Member Procedure
Sets the name of the object that is changed by the LCR.
Syntax
MEMBER PROCEDURE SET_OBJECT_NAME( object_name IN VARCHAR2);
Parameter
Table 229-34 SET_OBJECT_NAME Procedure Parameter
Parameter | Description |
---|---|
object_name |
The name of the object |
SET_OBJECT_OWNER Member Procedure
Sets the owner of the object that is changed by the LCR.
Syntax
MEMBER PROCEDURE SET_OBJECT_OWNER( object_owner IN VARCHAR2);
Parameter
Table 229-35 SET_OBJECT_OWNER Procedure Parameter
Parameter | Description |
---|---|
object_owner |
The schema that contains the object |
SET_SOURCE_DATABASE_NAME Member Procedure
Sets the source database name of the object that is changed by the LCR.
Syntax
MEMBER PROCEDURE SET_SOURCE_DATABASE_NAME( source_database_name IN VARCHAR2);
Parameter
Table 229-36 SET_SOURCE_DATABASE_NAME Procedure Parameter
Parameter | Description |
---|---|
source_database_name |
The source database of the change. If you do not include the domain name, then the procedure appends the local domain to the database name automatically. For example, if you specify DBS1 and the local domain is .NET , then the procedure specifies DBS1.NET automatically. This parameter should be set to a non-NULL value. |
Sets the tag for the LCR. An LCR tag is a binary tag that enables tracking of the LCR. For example, this tag can be used to determine the original source database of the change when apply forwarding is used.
See Also:
Oracle Streams Replication Administrator's Guide for more information about tagsSyntax
MEMBER PROCEDURE SET_TAG( tag IN RAW);
Parameter
Table 229-37 SET_TAG Procedure Parameter
Parameter | Description |
---|---|
tag |
The binary tag for the LCR. The size limit for a tag value is two kilobytes. |
Identifies a list of column values for a row in a table.
This type uses the LCR$_ROW_UNIT
type and is used in the LCR$_ROW_RECORD
type.
See Also:
Syntax
CREATE TYPE SYS.LCR$_ROW_LIST AS TABLE OF SYS.LCR$_ROW_UNIT /
Identifies the value for a column in a row.
This type is used in the LCR$_ROW_LIST
type.
See Also:
"LCR$_ROW_LIST Type"Syntax
CREATE TYPE LCR$_ROW_UNIT AS OBJECT ( column_name VARCHAR2(4000), data ANYDATA, lob_information NUMBER, lob_offset NUMBER, lob_operation_size NUMBER long_information NUMBER); /
Attributes
Table 229-38 LCR$_ROW_UNIT Attributes
Attribute | Description |
---|---|
column_name |
The name of the column |
data |
The data contained in the column |
lob_information |
Contains the LOB information for the column and contains one of the following values:
DBMS_LCR.NOT_A_LOB CONSTANT NUMBER := 1; DBMS_LCR.NULL_LOB CONSTANT NUMBER := 2; DBMS_LCR.INLINE_LOB CONSTANT NUMBER := 3; DBMS_LCR.EMPTY_LOB CONSTANT NUMBER := 4; DBMS_LCR.LOB_CHUNK CONSTANT NUMBER := 5; DBMS_LCR.LAST_LOB_CHUNK CONSTANT NUMBER := 6; |
lob_offset |
The LOB offset specified in the number of characters for CLOB columns and the number of bytes for BLOB columns. Valid values are NULL or a positive integer less than or equal to DBMS_LOB.LOBMAXSIZE . |
lob_operation_size |
If lob_information for the LOB is DBMS_LCR.LAST_LOB_CHUNK , then this parameter can be set to either a valid LOB ERASE value or a valid LOB TRIM value. A LOB ERASE value must be a positive integer less than or equal to DBMS_LOB.LOBMAXSIZE . A LOB TRIM value must be a nonnegative integer less than or equal to DBMS_LOB.LOBMAXSIZE .
If |
long_information |
Contains the LONG information for the column and contains one of the following values:
|