Oracle Error PLS-00412: list of values not allowed as argument to this function or procedure

Oracle Error Message

PLS-00412: list of values not allowed as argument to this function or procedure

Reason for the Error

A parenthesized list of values separated by commas (that is, an aggregate) was used in the wrong context. For example, the following usage is invalid: WHERE (col1, col2) > (SELECT col3, col4 FROM my_table …) However, an equal sign can take a list of values and a subquery as left- and right-hand-side arguments, respectively. So, the following usage is valid: WHERE (col1, col2) = (SELECT col3, col4 FROM my_table …)

Solution

Rewrite the expression. For example, the clause WHERE (col1, col2) > (SELECT col3, col4 FROM my_table …) can be rewritten as WHERE col1 > (SELECT col3 FROM my_table …) AND col2 > (SELECT col4 FROM my_table …)