ORA-01427: single-row subquery returns more than one row

Recommendations
  • SubQuery must return single row of data if you are using “=” operator to update field
  • Add rownum=1 to your subquery conditions if you DO NOT care about the value from the list or DO sure that they are the same.

For any comparison operator listed in the table shown below, the sub-query must return single row (in other words, the sub-query, must be a single-row sub-query, otherwise it will fail)



Single-row Sub-query Operators

 =          equal

>          greater than

>=        greater than or equal

<          less than

<=        less than or equal

<>        not equal

!=        not equal



The operators can use multiple-row sub-queries:

Multiple-row Sub-query Operators


IN        equal to any member in a list

NOT IN           not equal to any member in a list

ANY    returns rows that match any value on a list

ALL    returns rows that match all the values in a list