我正试图创建一个多次调用另一个存储过程的存储过程。这是通过为每个循环使用来完成的。所有开发都在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
的所有方法,因为它无法将其识别为关键字。并显示它接下来期望看到的内容:变量名(后面跟着:=
进行赋值)或模式名(后面跟.
);或函数/过程名称(参数列表后面跟着(
)等。