在Oracle下创建存储过程时出错-PLS-00103



我正试图创建一个多次调用另一个存储过程的存储过程。这是通过为每个循环使用来完成的。所有开发都在oracle-sql开发人员3.0.04版本下进行。

    CREATE OR REPLACE PROCEDURE Z_INBILLABILITYSERV
    IS BEGIN
      DECLARE
        ano VARCHAR2(4); 
      BEGIN
        select EXTRACT(YEAR FROM sysdate) into ano from dual;
        FOR dat IN (SELECT * FROM Z_FECHOMES WHERE MES <= 
                   (select EXTRACT(MONTH FROM sysdate) from dual )and ANO = ano)
        LOOP
          call z_insertbillability(dat.periodo_inicio,dat.periodo_fim,
                                                                dat.ano,dat.mes);
        END LOOP;
      END;
    END;

我有以下错误:

错误(9,12):PLS-00103:在预期以下情况之一时遇到符号"Z_INSERTBILLABILITY":=。(@%;符号":="被替换为"Z_INSERTBILLABILITY"以继续。

如果有人有什么想法或建议,我现在很乐意,并将不胜感激。

您不需要单词call;只需:

    LOOP
      z_insertbillability(dat.periodo_inicio,dat.periodo_fim,
                                                            dat.ano,dat.mes);
    END LOOP;

错误消息可能有点无益,但它试图展示它可以尝试解释单词call的所有方法,因为它无法将其识别为关键字。并显示它接下来期望看到的内容:变量名(后面跟着:=进行赋值)或模式名(后面跟.);或函数/过程名称(参数列表后面跟着()等。

最新更新