从命令窗口执行PL / SQL时出现DB2错误

时间:2014-12-13 19:56:41

标签: sql plsql cursor db2

我正在尝试运行Oracle to DB2 Conversion Guide一书中给出的这个PL / SQL示例块。我从DB2命令窗口运行它作为db2 -vtd @ -f" check.sql"。我已经尝试了几个小时了。我一直收到下面列出的错误。

 CREATE OR REPLACE PROCEDURE delete_employee(p_empno IN employee.empno%TYPE)
 IS
 r_emp employee%ROWTYPE;
 BEGIN
    DELETE FROM employee WHERE empno = p_empno
    RETURNING * INTO r_emp;
    IF SQL%FOUND THEN
         DBMS_OUTPUT.PUT_LINE('Deleted Employee # : ' || r_emp.empno);
         DBMS_OUTPUT.PUT_LINE('Name : ' || r_emp.LASTNAME);
         DBMS_OUTPUT.PUT_LINE('Department : ' ||  r_emp.WORKDEPT);
    ELSE
         DBMS_OUTPUT.PUT_LINE('Employee # ' || p_empno || ' not found');
    END IF;
 END@

DB21034E该命令作为SQL语句处理,因为它不是有效的命令行处理器命令。在SQL处理期间,它返回:SQL0104N意外的令牌"员工"发现在" _EMPLOYEE之后(p_empno IN"。预期的代币可能包括:""。行号= 1.SQLSTATE = 42601

如果我删除了IN关键字,那么我会收到IS和rowtype的错误。这里有什么我想念的吗?

谢谢。

0 个答案:

没有答案