SQL>
declare
v_empno number;
begin
select empno into v_empno from scott.emp where deptno=20;
end;
/
declare
*
ERROR at line 1:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at line 4
Solution:
1. Make sure the query to return exact one row
2. Implement the cursor if the query may return more than one rows
Example:
SQL>
declare
v_empno number;
begin
for c in (select empno into v_empno from scott.emp where deptno=20)
loop
v_empno := c.empno;
end loop;
end;
/