Oracle® Database PL/SQL Packages and Types Reference 10g Release 2 (10.2) Part Number B14258-01 |
|
|
View PDF |
This chapter describes the types used with rules, rule sets, and evaluation contexts.
This chapter contains the following topic:
Table 196-1 Rule Types
Type | Description |
---|---|
"RE$ATTRIBUTE_VALUE Type" |
Specifies the value of a variable attribute |
"RE$ATTRIBUTE_VALUE_LIST Type" |
Identifies a list of attribute values |
"RE$COLUMN_VALUE Type" |
Specifies the value of a table column |
"RE$COLUMN_VALUE_LIST Type" |
Identifies a list of column values |
"RE$NAME_ARRAY Type" |
Identifies a list of names |
"RE$NAME_ARRAY Type" |
Identifies a list of name-value pairs |
"RE$NV_LIST Type" |
Identifies an object containing a list of name-value pairs and methods that operate on this list. This object type is used to represent the event context and the action context for a rule |
"RE$NV_NODE Type" |
Identifies a name-value pair |
"RE$RULE_HIT Type" |
Specifies a rule found as a result of evaluation |
"RE$RULE_HIT_LIST Type" |
Identifies a list of rules found as a result of evaluation |
"RE$TABLE_ALIAS Type" |
Provides the table corresponding to an alias used in a rule evaluation context |
"RE$TABLE_ALIAS_LIST Type" |
Identifies a list of table aliases used in a rule evaluation context |
"RE$TABLE_VALUE Type" |
Specifies the value of a table row using a ROWID |
"RE$TABLE_VALUE_LIST Type" |
Identifies a list of table values |
"RE$VARIABLE_TYPE Type" |
Provides the type of a variable used in a rule evaluation context |
"RE$VARIABLE_TYPE_LIST Type" |
Identifies a list of variables and their types used in a rule evaluation context |
"RE$VARIABLE_VALUE Type" |
Specifies the value of a variable |
"RE$VARIABLE_VALUE_LIST Type" |
Identifies a list of variable values |
Rule types are used with the following Oracle-supplied PL/SQL packages:
DBMS_RULE
DBMS_RULE_ADM
You can use the DBMS_RULE_ADM
package to create and administer rules, rule sets, and evaluation contexts, and you can use the DBMS_RULE
package to evaluate rules.
When you use Streams, rules determine which changes are captured by a capture process, which messages are propagated by a propagation, which messages are applied by an apply process, and which messages are dequeued by a messaging client. The following Streams packages use rules:
DBMS_APPLY_ADM
DBMS_CAPTURE_ADM
DBMS_PROPAGATION_ADM
DBMS_STREAMS
DBMS_STREAMS_ADM
DBMS_STREAMS_AUTH
Specifies the value of a variable attribute.
Note:
Enclose the variable name and attribute name in double quotation marks (") if the name contains special characters.Syntax
TYPE SYS.RE$ATTRIBUTE_VALUE ( variable_name VARCHAR2(32), attribute_name VARCHAR2(4000), attribute_value ANYDATA);
Attributes
Table 196-2 RE$ATTRIBUTE_VALUE Attributes
Attribute | Description |
---|---|
variable_name |
Specifies the variable used in a rule |
attribute_name |
Specifies the attribute name. The attribute name can be a multi-component name, such as a1.b2.c3 . |
attribute_value |
Specifies the attribute value |
Identifies a list of attribute values.
Syntax
TYPE SYS.RE$ATTRIBUTE_VALUE_LIST AS VARRAY(1024) OF SYS.RE$ATTRIBUTE_VALUE;
Specifies the value of a table column.
Note:
Enclose the column name in double quotation marks (") if the name contains special characters.Syntax
TYPE SYS.RE$COLUMN_VALUE ( table_alias VARCHAR2(32), column_name VARCHAR2(4000), column_value ANYDATA);
Attributes
Table 196-3 RE$COLUMN_VALUE Attributes
Attribute | Description |
---|---|
table_alias |
Specifies the alias used for the table in a rule |
column_name |
Specifies the column name |
column_value |
Specifies the column value |
Identifies a list of column values.
Syntax
TYPE SYS.RE$COLUMN_VALUE_LIST AS VARRAY(1024) OF SYS.RE$COLUMN_VALUE;
Identifies a list of names.
Syntax
TYPE SYS.RE$NAME_ARRAY AS VARRAY(1024) OF VARCHAR2(30);
Identifies a list of name-value pairs.
TYPE SYS.RE$NV_ARRAY AS VARRAY(1024) OF SYS.RE$NV_NODE;
Identifies an object containing a list of name-value pairs and methods that operate on this list. This object type is used to represent the event context for rule set evaluation and the action context for a rule.
Syntax
TYPE SYS.RE$NV_LIST AS OBJECT( actx_list SYS.RE$NV_ARRAY);
Attributes
RE$NV_LIST Subprograms
This section describes the following member procedures and member functions of the SYS.RE$NV_LIST
type:
Adds a name-value pair to the list of name-value pairs.
Note:
Enclose the name in double quotation marks (") if the name contains special characters.Syntax
MEMBER PROCEDURE ADD_PAIR( name IN VARCHAR2, value IN ANYDATA);
Parameters
Table 196-5 ADD_PAIR Procedure Parameters
Parameter | Description |
---|---|
name |
The name in the name-value pair being added to the list. If the name already exists in the list, then this procedure raises an error. |
value |
The value in the name-value pair being added to the list |
Returns a list of all the names in the name-value pair list.
Syntax
MEMBER FUNCTION GET_ALL_NAMES() RETURN SYS.RE$NAME_ARRAY;
Returns the value for the specified name in a name-value pair list.
Note:
Enclose the name in double quotation marks (") if the name contains special characters.Syntax
MEMBER FUNCTION GET_VALUE( name IN VARCHAR2) RETURN ANYDATA;
Parameters
Table 196-6 GET_VALUE Procedure Parameters
Parameter | Description |
---|---|
name |
The name whose value to return |
Removes the name-value pair with the specified name from the name-value pair list.
Note:
Enclose the name in double quotation marks (") if the name contains special characters.Syntax
MEMBER PROCEDURE REMOVE_PAIR( name IN VARCHAR2);
Parameters
Table 196-7 REMOVE_PAIR Procedure Parameters
Parameter | Description |
---|---|
name |
The name of the pair to remove |
Identifies a name-value pair.
Note:
Enclose the name in double quotation marks (") if the name contains special characters.Syntax
TYPE SYS.RE$NV_NODE ( nvn_name VARCHAR2(30), nvn_value ANYDATA);
Attributes
Table 196-8 RE$NV_NODE Attributes
Attribute | Description |
---|---|
nvn_name |
Specifies the name in the name-value pair |
nvn_value |
Specifies the value in the name-value pair |
Specifies a rule found as a result of an evaluation.
Syntax
TYPE SYS.RE$RULE_HIT ( rule_name VARCHAR2(65), rule_action_context RE$NV_LIST);
Attributes
Table 196-9 RE$RULE_HIT Attributes
Attribute | Description |
---|---|
rule_name |
The rule name in the form schema_name.rule_name . For example, a rule named employee_rule in the hr schema is returned in the form "hr"."employee_rule" . |
rule_action_context |
The rule action context as specified in the CREATE_RULE or ALTER_RULE procedure of the DBMS_RULE_ADM package |
Identifies a list of rules found as a result of an evaluation.
Syntax
TYPE SYS.RE$RULE_HIT_LIST AS VARRAY(1024) OF SYS.RE$RULE_HIT;
Provides the table corresponding to an alias used in a rule evaluation context. A specified table name must satisfy the schema object naming rules.
Note:
Enclose the table name in double quotation marks (") if the name contains special characters.See Also:
Oracle Database SQL Reference for information about schema object naming rulesSyntax
TYPE SYS.RE$TABLE_ALIAS IS OBJECT( table_alias VARCHAR2(32), table_name VARCHAR2(194));
Attributes
Table 196-10 RE$TABLE_ALIAS Attributes
Attribute | Description |
---|---|
table_alias |
The alias used for the table in a rule |
table_name |
The table name referred to by the alias. A synonym can be specified. The table name is resolved in the evaluation context schema.
The format is one of the following: schema_name.table_name table_name For example, if the hr.employees |
Identifies a list of table aliases used in a rule evaluation context.
Syntax
TYPE SYS.RE$TABLE_ALIAS_LIST AS VARRAY(1024) OF SYS.RE$TABLE_ALIAS;
Specifies the value of a table row using a ROWID
.
Syntax
TYPE SYS.RE$TABLE_VALUE( table_alias VARCHAR2(32), table_rowid VARCHAR2(18));
Attributes
Table 196-11 RE$TABLE_VALUE Attributes
Attribute | Description |
---|---|
table_alias |
Specifies the alias used for the table in a rule |
table_rowid |
Specifies the rowid for the table row |
Identifies a list of table values.
Note:
Each table alias in the list in the list must be unique.Syntax
TYPE SYS.RE$TABLE_VALUE_LIST AS VARRAY(1024) OF SYS.RE$TABLE_VALUE;
Provides the type of a variable used in a rule evaluation context. A specified variable name must satisfy the schema object naming rules.
Note:
Enclose the variable name in double quotation marks (") if the name contains special characters.See Also:
Oracle Database SQL Reference for information about schema object naming rulesSyntax
TYPE SYS.RE$VARIABLE_TYPE ( variable_name VARCHAR2(32), variable_type VARCHAR2(4000), variable_value_function VARCHAR2(228), variable_method_function VARCHAR2(228));
Attributes
Table 196-12 RE$VARIABLE_TYPE Attributes
Attribute | Description |
---|---|
variable_name |
The variable name used in a rule |
variable_type |
The type that is resolved in the evaluation context schema. Any valid Oracle built-in datatype, user-defined type, or Oracle-supplied type can be specified. See the Oracle Database SQL Reference for more information about these types. |
variable_value_function |
A value function that can be specified for implicit variables. A synonym can be specified. The function name is resolved in the evaluation context schema. It is executed on behalf of the owner of a rule set using the evaluation context or containing a rule that uses the evaluation context.
See the "Usage Notes" for more information. |
variable_method_function |
Specifies a value function, which can return the result of a method invocation. Specifying such a function can speed up evaluation, if there are many simple rules that invoke the method on the variable. The function can be a synonym or a remote function.
The function name is resolved in the evaluation context schema. It is executed on behalf of the owner of a rule set using the evaluation context or containing a rule that uses the evaluation context. See the "Usage Notes" for more information. |
Usage Notes
The functions for both the for the variable_value_function
parameter and variable_method_function
parameter have the following format:
schema_name.package_name.function_name@dblink
Any of the following parts of the format can be omitted: schema_name
, package_name
, and @dblink
.
For example, if the schema_name
is hr
, the package_name
is var_pac
, the function_name
is func_value
, and the dblink
is dbs1.net
, then enter the following:
hr.var_pac.func_value@dbs1.net
The following sections describe the signature of the functions.
Signature for variable_value_function
The function must have the following signature:
FUNCTION variable_value_function_name(
evaluation_context_schema IN VARCHAR2,
evaluation_context_name IN VARCHAR2,
variable_name IN VARCHAR2,
event_context IN SYS.RE$NV_LIST )
RETURN SYS.RE$VARIABLE_VALUE;
Signature for variable_method_function
This function must have the following signature:
FUNCTION variable_method_function_name(
evaluation_context_schema IN VARCHAR2,
evaluation_context_name IN VARCHAR2,
variable_value IN SYS.RE$VARIABLE_VALUE,
method_name IN VARCHAR2,
event_context IN SYS.RE$NV_LIST)
RETURN SYS.RE$ATTRIBUTE_VALUE;
Identifies a list of variables and their types used in a rule evaluation context.
Syntax
TYPE SYS.RE$VARIABLE_TYPE_LIST AS VARRAY(1024) OF SYS.RE$VARIABLE_TYPE;
Specifies the value of a variable.
Note:
Enclose the variable name in double quotation marks (") if the name contains special characters.Syntax
TYPE SYS.RE$VARIABLE_VALUE ( variable_name VARCHAR2(32), variable_data ANYDATA);
Attributes
Table 196-13 RE$VARIABLE_VALUE Attributes
Attribute | Description |
---|---|
variable_name |
Specifies the variable name used in a rule |
variable_data |
Specifies the data for the variable value |
Identifies a list of variable values.
Syntax
TYPE SYS.RE$VARIABLE_VALUE_LIST AS VARRAY(1024) OF SYS.RE$VARIABLE_VALUE;