This content has been marked as final. Show 4 replies
It might help you to think of the Attribute set as the table and the expressions as the queries on the table. The table may have N number of columns. The corresponding queries may refer to some subset of these columns. In your case, you are defining an attribute set with 3 attributes. It so happened that none of the expressions you defined used the attribute "change". But the attribute set is created to allow expressions that include predicates on "change" attribute. Extending our attribute set - table analogy, a data item specified with an EVALUATE operator is like an INSERT statement into the table. Irrespective of the queries, the INSERT statement expects values for each of the columns in the table (the INSERT statement with column enumeration is another way of assigning NULLs for missing columns). So, the EVALUATE operator expects the values for all the attributes in the attribute set even when there are no expressions defined. In 11g Release 1, you could have default values for some of the attributes and the default value will be used if certain attribute is missing in the data item specification.
Since the column you are assigning the attribute set to has some data, you should use FORCE to validate those expressions or empty the table prior to assigning the attribute set.
38464, 00000, "expression set is not empty."
// *Cause: An attempt was made to assign an attribute set to a non-empty
// expression set.
// *Action: Use FORCE = 'TRUE' to validate all the existing expressions.
Hope this helps,
Thanks for the reply and your explanation.
+"Since the column you are assigning the attribute set to has some data, you should use FORCE to validate those expressions or empty the table prior to assigning the attribute set. "+
Empty the table ... u mean the table in my example --Traders u mean to delete all the records
Kindly clarify me in this regard
with warm regards