Skip Headers
Oracle® Database PL/SQL Packages and Types Reference
10g Release 2 (10.2)

Part Number B14258-02
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
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

196 Rules Manager Types

Rules Manager is supplied with one predefined type and a public synonym for this type.

See Also:

Oracle Database Application Developer's Guide - Rules Manager and Expression Filter for more information.

This chapter contains the following topics:


Summary of Rule Manager Types

Table 196-1 describes the Rules Manager object type.

Table 196-1 Rules Manager Object Types

Object Type Name Description

RLM$EVENTIDS Object Type

Specifies a list of event identifiers to the CONSUME_PRIM_EVENTS procedure



RLM$EVENTIDS Object Type

The RLM$EVENTIDS type is defined as a table of VARCHAR2 values as follows:

Syntax

CREATE OR REPLACE TYPE RLM$EVENTIDS is table of VARCHAR2(38);

Attributes

None.

Usage Notes

RLM$EVENTIDS type is used to pass a list of event identifiers to the CONSUME_PRIM_EVENTS procedure. These event identifiers are ROWIDs for the corresponding events in the database and their values are available through the arguments of the action callback procedure and rule class results view columns, when the rule class is configured for RULE consumption policy.

Examples

The following commands show the body of the action callback procedure for a rule class configured for RULE consumption policy. This demonstrates the use of RLM$EVENTDIDS type to consume the events before executing the action for the matched rules.

CREATE OR REPLACE PROCEDURE PromoAction (
      Flt        AddFlight, 
      Flt_EvtId  ROWID,    --- rowid for the fligt primitive event
      Car        AddRentalCar, 
      Car_EvtId  ROWID, 
      rlm$rule   TravelPromotions%ROWTYPE) is 
 evtcnsmd   NUMBER; 
BEGIN
 evtcnsmd := dbms_rlmgr.consume_prim_events(
              rule_class   => 'TravelPromotions',
              event_idents => RLM$EVENTIDS(Flt_EvtId, Car_EvtId));

 IF (evtcnsmd = 1) THEN 
   -- consume operation was successful; perform the action ---
   OfferPromotion (Flt.CustId, rlm$rule.PromoType, rlm$rule.OfferedBy);
 END IF;
END;