This is my procedure:
create or replace procedure emp_lookup
(empno IN emp55.empno%TYPE,
salary OUT emp55.sal%TYPE,
empname OUT emp55.ename%TYPE)
is
begin
select sal , ename INTO salary, empname
from emp55
where empno=empno;
EXCEPTION WHEN NO_DATA_FOUND THEN empname:='null';
salary:=-1;
END;
This is the calling code:
SET SERVEROUTPUT ON
DECLARE
employee_name emp55.ename%TYPE;
employee_salary emp55.sal%TYPE;
BEGIN
emp_lookup (3244,salary,empname);
END;
/
It gives this error when executed:
Error starting at line : 3 in command -
DECLARE
employee_name emp55.ename%TYPE;
employee_salary emp55.sal%TYPE;
BEGIN
emp_lookup (3244,salary,empname);
END;
Error report -
ORA-06550: line 5, column 20:
PLS-00201: identifier 'SALARY' must be declared
ORA-06550: line 5, column 1:
PL/SQL: Statement ignored
It runs successfully but when I execute it
execute emp_lookup (3346, salary, empname);
shows this error:
Error starting at line : 16 in command -
BEGIN emp_lookup (3346, salary, empname); END;
Error report -
ORA-06550: line 1, column 27:
PLS-00201: identifier 'SALARY' must be declared
ORA-06550: line 1, column 54:
PL/SQL: Statement ignored