【问题标题】:The symbol "PROCEDURE" was ignored符号“PROCEDURE”被忽略
【发布时间】:2023-03-15 08:20:01
【问题描述】:

我收到此错误:

SQL> 执行过程 hr.p_empleados_limites('Executive');

开始程序 hr.p_empleados_limites('Executive');结束;

第 1 行第 7 列:预期时遇到符号“PROCEDURE” 以下之一:

( begin case declare exit for goto if loop mod null pragma raise 在

在尝试运行此过程时:

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('King');

【问题讨论】:

  • 这看起来很像 oracle 过程和语法。绝对这些都不能在 SQL Server 中工作

标签: mysql stored-procedures


【解决方案1】:

在调用时删除单词procedure。应该是这样的

 execute hr.p_empleados_limites 'Executive';

(或)

 exec hr.p_empleados_limites 'Executive';

【讨论】:

  • @LuisAdriánTobar,欢迎并考虑通过单击检查按钮来接受答案。由于您是新用户,因此指向它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-23
  • 2013-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多