【发布时间】:2018-08-02 00:56:52
【问题描述】:
这是我的程序:
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;
这是调用代码:
SET SERVEROUTPUT ON
DECLARE
employee_name emp55.ename%TYPE;
employee_salary emp55.sal%TYPE;
BEGIN
emp_lookup (3244,salary,empname);
END;
/
执行时出现此错误:
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
它运行成功,但是当我执行它时
execute emp_lookup (3346, salary, empname);
显示此错误:
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
【问题讨论】: