Oracle8i Supplied Packages Reference Release 8.1.5 A68001-01 |
|
DBMS_DEFER
is the user interface to a replicated transactional deferred remote procedure call facility. Replicated applications use the calls in this interface to queue procedure calls for later transactional execution at remote nodes.
These routines are typically called from either after row triggers or application specified update procedures.
Subprogram | Description |
---|---|
CALL procedure |
Builds a deferred call to a remote procedure. |
COMMIT_WORK procedure |
Performs a transaction commit after checking for well-formed deferred remote procedure calls. |
datatype_ARG procedure |
Provides the data that is to be passed to a deferred remote procedure call. |
TRANSACTION procedure |
Indicates the start of a new deferred transaction. |
This procedure builds a deferred call to a remote procedure.
DBMS_DEFER.CALL ( schema_name IN VARCHAR2, package_name IN VARCHAR2, proc_name IN VARCHAR2, arg_count IN NATURAL, { nodes IN node_list_t, | group_name IN VARCHAR2 :=''});
This procedure performs a transaction commit after checking for well-formed deferred remote procedure calls.
DBMS_DEFER.COMMIT_WORK ( commit_work_comment IN VARCHAR2);
Parameter | Description |
---|---|
commit_work_comment |
Equivalent to SQL |
Exception | Description |
---|---|
ORA-23304 (malformedcall) |
Transaction was not correctly formed or terminated. |
This procedure provides the data that is to be passed to a deferred remote procedure call. Depending upon the type of the data that you need to pass to a procedure, you must call one of the following procedures for each argument to the procedure.
DBMS_DEFER.NUMBER_ARG (arg IN NUMBER); DBMS_DEFER.DATE_ARG (arg IN DATE); DBMS_DEFER.VARCHAR2_ARG (arg IN VARCHAR2); DBMS_DEFER.CHAR_ARG (arg IN CHAR); DBMS_DEFER.ROWID_ARG (arg IN ROWID); DBMS_DEFER.RAW_ARG (arg IN RAW); DBMS_DEFER.BLOB_ARG (arg IN BLOB); DBMS_DEFER.CLOB_ARG (arg IN CLOB); DBMS_DEFER.NCLOB_ARG (arg IN NCLOB); DBMS_DEFER.NCHAR_ARG (arg IN NCHAR); DBMS_DEFER.NVARCHAR2_ARG (arg IN NVARCHAR2); DBMS_DEFER.ANY_CLOB_ARG (arg IN CLOB); DBMS_DEFER.ANY_VARCHAR2_ARG (arg IN VARCHAR2); DBMS_DEFER.ANY_CHAR_ARG (arg IN CHAR);
Parameter | Description |
---|---|
arg |
Value of the parameter that you want to pass to the remote procedure to which you previously deferred a call. |
Exception | Description |
---|---|
ORA-23323 |
Argument value is too long. |
This procedure indicates the start of a new deferred transaction. If you omit this call, then Oracle considers your first call to DBMS_DEFER
.CALL
to be the start of a new transaction.
DBMS_DEFER.TRANSACTION ( nodes IN node_list_t);
The TRANSACTION
procedure is overloaded. The behavior of the version without an input parameter is similar to that of the version with an input parameter, except that the former uses the nodes
in the DEFDEFAULTDEST
view instead of using the nodes in the nodes parameter.