Oracle Error PLS-00229: Attribute expression within SQL expression

Oracle Error Message

PLS-00229: Attribute expression within SQL expression

Reason for the Error

An attribute expression, such as SQL%NOTFOUND, was used in a SQL statement, but attribute expressions are allowed only in procedural statements.

Solution

To workaround this limitation, assign the value of the attribute expression to a variable, then use the variable in the SQL statement. For example, replace the statement INSERT INTO audits VALUES (c1%ROWCOUNT, …); with the following statements: row_count := c1%ROWCOUNT; INSERT INTO audits VALUES (row_count, …);