Error: Single-Row Subquery Returns More Than One Row in Oracle

Q

What Happens If the UPDATE Subquery Returns Multiple Rows in Oracle?

✍: FYIcenter.com

A

If a subquery is used in a UPDATE statement, it must return exactly one row for each row in the update table that matches the WHERE clause. If it returns multiple rows, Oracle server will give you an error message. To test this out, you can try the following tutorial exercise:

UPDATE fyi_links SET (notes, created) = 
  (SELECT last_name, hire_date FROM employees
    WHERE employee_id < id)
  WHERE id < 110;
ERROR at line 1:
ORA-01427: single-row subquery returns more than one row

The problem is the criteria in the subquery: "employee_id < id"

 

Understanding SQL DML Statements for Oracle

⇒⇒Oracle Database Tutorials

2016-10-17, 150👍, 0💬