Basic Oracle Concepts and Programming Question:
Can You Assign Multiple Query Result Rows To a Variable?
Answer:
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
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
Previous Question | Next Question |
How To Assign Query Results to Variables? | How To Run SQL Functions in PL/SQL? |