This content has been marked as final. Show 3 replies
Please find my responses below.
At this time, an attribute set associated with an expression column cannot be edited (adding new attributes or deleting some attributes). The index and the trigger created to maintain the expression column are closely tied with the attribute set. So, you will have to drop the Expression Filter index and unassign the attribute set in order to recreate the attributes.
- Can I add or delete and attribute to an existing attribute set?. The idea would be to provide users with the ability to add or delete attributes of interest through the use of some metadata. If not, what would be the implications of recreating the attributes, since there are several objects related to an attribute set(types, triggers, etc.).
Yes, this can be done by specifying additional predicates in the query with EVALUATE operator. For example, the following query only evaluates the expression associated with a specific customer.
- Can i evaluate expressions on a one by one basis?. The example showed always evaluate all expressions at the same time. My idea here, would be give the users the possibility of specifying the frequency of evaluating a particular expression, since all might not be equally important.
SELECT * FROM Customers
WHERE CustId = 1234 and
EVALUATE (Interest, :data) = 1
But, what is the logic behind "all might not be equally important" ? Often, rules are associated with a priority and the matching rules are ordered based on their priority. In this case, all the expressions are evaluated. But the application ignores the rules with low priority when there a matching rule with high priority.
Yes, you can use user-defined functions in the stored expressions. See Example 10.3 in the Application Developer's Guide - Rules Manager and Expression Filter (10g Release 2) for a sample.
- Can i use the result of a pl/sql function and use it in an expression set. Again, sometimes things might be more complicated than evaluating columns of a table on a expression.
If you have 10g Release 2, you may also want to look at the Rules Manager feature. This feature allows declarative specification of complex Event-Condition-Action rules in the database and it is built on Expression Filter feature. With the Rules Manager, the ORDERING and CONSUMPTION event management policies can be used to control the execution of specific rules (may relate to your second question).
Please let us know if you have additional questions.