0

仕事でストアド プロシージャを使用する際に問題があります。

これは、いくつかのより大きなプロシージャで使用されるストアド プロシージャです。作業を行う手続きは と呼ばれC、それを呼び出すのはABです。

私が抱えている問題は、 を実行するAとすべてがスムーズに進むことですが、 を実行するBと、missing expression errorを呼び出したときに得られない が得られA、さらにタフBA、同じフローのプロシージャ コールが発生することです (つまり、一種の本当に奇妙なエラー)。

Cプロシージャには同じコードがあります。

procedure C ( LO in varchar2,
              EN in varchar2,
              CA in array1d,
              IA in number,
              AR in array2d )
is
  CQ varchar2(5);
  ET varchar2(2000);
  OL varchar2(100);
  NE varchar2(100);
  TE varchar2(100);
  XU varchar2(100);
begin
  LO := '05';
  TE := 'VAR';
  CQ := '''';
  OL := CQ || LO || CQ;
  TE := CQ || TE || CQ;
  NE := CQ || EN || CQ;

  ET := 'PAR1 = ' || CA(1) || ',' ||
        'PAR2 = ' || CA(2) || ',' ||
        'PAR3 = ' || CA(3) || ',' ||
        'PAR4 = ' || CA(4) || ',' ||
        'PAR5 = ' || CA(5) || ',' ||
        'PAR6 = ' || CA(6) || ',' ||
        'PAR7 = ' || CA(7) || ',' ||
        'PAR8 = ' || CA(8) || ',' ||
        'PAR9 = ' || CA(9);

  execute immediate 'update table_st set ' || ET || '
                      where field1 = ' || OL || '
                        AND field2 = ' || NE || '
                        AND field3 = ' || TE;
end;

私が得たエラーはmissing expressionで、の最初の行に表示されているようexecute immediateです。いくつかの分析の後、2d ARRAY からのデータがいくつかの空の文字列で初期化されていることに気付きました''

このエラーを新しい観点から見るのを手伝ってもらえないかと思っていますmissing expression error. さらに詳細が必要な場合は、お知らせください。

4

1 に答える 1