0

別のを何度も呼び出すストアドプロシージャを作成しようとしています。これは、foreachループを使用して行われます。すべての開発は、oraclesqldeveloperバージョン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」の代わりに記号「:=」を使用しました。

誰かがアイデアやヒントを持っているなら、私は今喜んで、たくさん感謝します。

4

1 に答える 1

0

単語は必要ありませんcall; ただ行う:

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

callエラーメッセージはおそらく少し役に立たないかもしれませんが、キーワードとして認識されないため、単語を解釈しようとするすべての方法を表示しようとしているはずです。そして、それぞれについて次に何が表示されるかを示します。変数名(:=割り当てのために続く)、スキーマ名(後に続く.)、または関数/プロシージャ名(後に続く)(としてパラメータリスト)など。

于 2012-07-31T16:11:42.433 に答える