Error: Exact Fetch Returns More Rows in Oracle

Q

Can You Assign Multiple Query Result Rows To a Variable in Oracle?

✍: FYIcenter.com

A

You can use "SELECT ... INTO variable" to assign query results to variables. But what happens if the SELECT statements return multiple rows? The answer is that you will get a run time error. The following tutorial exercise shows this error condition:

DECLARE
  fname VARCHAR2(10);
  lname VARCHAR2(10);
BEGIN
  SELECT first_name, last_name INTO fname, lname 
    FROM employees WHERE employee_id = 100;
  DBMS_OUTPUT.PUT_LINE('Name = ' || fname || ' ' || lname);
  SELECT first_name, last_name INTO fname, lname 
    FROM employees WHERE employee_id > 100;
  DBMS_OUTPUT.PUT_LINE('Name = ' || fname || ' ' || lname);
END;
/
ORA-01422: exact fetch returns more than requested number 
  of rows
ORA-06512: at line 8
Name = Steven King

 

Working with Database Objects in Oracle PL/SQL

⇒⇒Oracle Database Tutorials

2016-10-17, 208👍, 0💬