2015-06-25 74 views
-3

我得到这个错误:符号 “程序” 被忽略

SQL> execute procedure hr.p_empleados_limites('Executive');

begin procedure hr.p_empleados_limites('Executive'); end;

line 1, column 7: Encountered the symbol "PROCEDURE" when expecting one of the following:

(begin case declare exit for goto if loop mod null pragma raise return select update while with << continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge The symbol "PROCEDURE" was ignored.

试图运行此程序:

CREATE OR REPLACE PROCEDURE P_SALARIO (P_APELLIDO VARCHAR2) 
IS 
-- CURSOR EXPLICITO 
CURSOR CUR IS 
     SELECT E.LAST_NAME, D.DEPARTMENT_NAME, ((NVL(E.COMMISSION_PCT,0)*E.SALARY)+E.SALARY) SAL_TOT 
     FROM HR.EMPLOYEES E, HR.DEPARTMENTS D 
     WHERE D.DEPARTMENT_ID=E.DEPARTMENT_ID AND 
       E.LAST_NAME =P_APELLIDO; 

     V_CUR CUR%ROWTYPE; 
BEGIN 
    OPEN CUR; 
    LOOP 
     FETCH CUR INTO V_CUR; 
     EXIT WHEN CUR%NOTFOUND; 
      DBMS_OUTPUT.PUT_LINE('APELLIDO: '||V_CUR.LAST_NAME||' DEP_NOM: '||V_CUR.DEPARTMENT_NAME || ' - SALARIO:' || V_CUR.SAL_TOT); 
    END LOOP; 
    CLOSE CUR; 
END; 

----执行过程hr.p_salario(“景“);

+0

这看起来很像Oracle过程和语法。绝对没有这会在SQL Server –

回答

2

调用它时删除单词procedure。它应该只是像

execute hr.p_empleados_limites 'Executive'; 

(OR)

exec hr.p_empleados_limites 'Executive'; 
+0

工作没有办法,它的工作原理,谢谢。 –

+0

@LuisAdriánTobar,欢迎并考虑接受答案,如果它通过点击检查按钮帮助。指出它,因为你是一个新用户。 – Rahul