Skip Headers

PL/SQL Packages and Types Reference
10g Release 1 (10.1)

Part Number B10802-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Feedback

Go to previous page
Previous
Go to next page
Next
View PDF

181
Rule TYPEs

This chapter describes the types used with rules, rule sets, and evaluation contexts.

See Also:

This chapter contains the following topic:


Summary of Rule Types

Table 181-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$NV_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:

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 events are propagated by a propagation, which events are applied by an apply process, and which events are dequeued by a messaging client. The following Streams packages use rules:


RE$ATTRIBUTE_VALUE Type

Specifies the value of a variable attribute.


Note:

The variable name and attribute name may be enclosed 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  SYS.AnyData); 

Attributes

Table 181-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 may be a multi-component name, such as a1.b2.c3.

attribute_value

Specifies the attribute value


RE$ATTRIBUTE_VALUE_LIST Type

Identifies a list of attribute values.

Syntax

TYPE SYS.RE$ATTRIBUTE_VALUE_LIST AS VARRAY(1024) OF SYS.RE$ATTRIBUTE_VALUE;




RE$COLUMN_VALUE Type

Specifies the value of a table column.


Note:

The column name may be enclosed 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  SYS.AnyData); 

Attributes

Table 181-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


RE$COLUMN_VALUE_LIST Type

Identifies a list of column values.

Syntax

TYPE SYS.RE$COLUMN_VALUE_LIST AS VARRAY(1024) OF SYS.RE$COLUMN_VALUE;



RE$NAME_ARRAY Type

Identifies a list of names.

Syntax

TYPE SYS.RE$NAME_ARRAY AS VARRAY(1024) OF VARCHAR2(30);



RE$NV_ARRAY Type

Identifies a list of name-value pairs.

Syntax

TYPE SYS.RE$NV_ARRAY AS VARRAY(1024) OF SYS.RE$NV_NODE;



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 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

Table 181-4 RE$NV_LIST Attributes
Attribute Description

actx_list

The list of name-value pairs

RE$NV_LIST Subprograms

This section describes the following member procedures and member functions of the SYS.RE$NV_LIST type:

ADD_PAIR Member Procedure

Adds a name-value pair to the list of name-value pairs.


Note:

The name may be enclosed in double quotation marks (") if the name contains special characters.


Syntax
MEMBER PROCEDURE ADD_PAIR(
   name   IN  VARCHAR2, 
   value  IN  SYS.AnyData);
Parameters
Table 181-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 an error is raised.

value

The value in the name-value pair being added to the list

GET_ALL_NAMES Member Function

Returns a list of all the names in the name-value pair list.

Syntax
MEMBER FUNCTION GET_ALL_NAMES()
RETURN SYS.RE$NAME_ARRAY;
GET_VALUE Member Function

Returns the value for the specified name in a name-value pair list.


Note:

The name may be enclosed in double quotation marks (") if the name contains special characters.


Syntax
MEMBER FUNCTION GET_VALUE(
   name  IN  VARCHAR2) 
RETURN SYS.AnyData;
Parameters
Table 181-6 GET_VALUE Procedure Parameters
Parameter Description

name

The name whose value to return

REMOVE_PAIR Member Procedure

Removes the name-value pair with the specified name from the name-value pair list.


Note:

The name may be enclosed in double quotation marks (") if the name contains special characters.


Syntax
MEMBER PROCEDURE REMOVE_PAIR(
   name  IN  VARCHAR2);

Parameters
Table 181-7 REMOVE_PAIR Procedure Parameters
Parameter Description

name

The name of the pair to remove


RE$NV_NODE Type

Identifies a name-value pair.


Note:

The name may be enclosed in double quotation marks (") if the name contains special characters.


Syntax

TYPE SYS.RE$NV_NODE (
   nvn_name   VARCHAR2(30), 
   nvn_value  SYS.AnyData); 

Attributes

Table 181-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



RE$RULE_HIT Type

Specifies a rule found as a result of an evaluation.

See Also:

Syntax

TYPE SYS.RE$RULE_HIT (
   rule_name            VARCHAR2(65),
   rule_action_context  RE$NV_LIST); 

Attributes

Table 181-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


RE$RULE_HIT_LIST Type

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;


RE$TABLE_ALIAS Type

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:

The table name may be enclosed in double quotation marks (") if the name contains special characters.


See Also:

Oracle Database SQL Reference for information about schema object naming rules

Syntax

TYPE SYS.RE$TABLE_ALIAS IS OBJECT(
   table_alias  VARCHAR2(32),
   table_name   VARCHAR2(194));

Attributes

Table 181-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 schema_name is hr and the table_name is employees, then enter the following:

hr.employees

RE$TABLE_ALIAS_LIST Type

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;


RE$TABLE_VALUE Type

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 181-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


RE$TABLE_VALUE_LIST Type

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;


RE$VARIABLE_TYPE Type

Provides the type of a variable used in a rule evaluation context. A specified variable name must satisfy the schema object naming rules.


Note:

The variable name may be enclosed in double quotation marks (") if the name contains special characters.


See Also:

Oracle Database SQL Reference for information about schema object naming rules

Syntax

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 181-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 may 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;


RE$VARIABLE_TYPE_LIST Type

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;


RE$VARIABLE_VALUE Type

Specifies the value of a variable.


Note:

The variable name may be enclosed in double quotation marks (") if the name contains special characters.


Syntax

TYPE SYS.RE$VARIABLE_VALUE (
   variable_name  VARCHAR2(32), 
   variable_data  SYS.AnyData); 

Attributes

Table 181-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


RE$VARIABLE_VALUE_LIST Type

Identifies a list of variable values.

Syntax

TYPE SYS.RE$VARIABLE_VALUE_LIST AS VARRAY(1024) OF SYS.RE$VARIABLE_VALUE;