仕事でストアド プロシージャを使用する際に問題があります。
これは、いくつかのより大きなプロシージャで使用されるストアド プロシージャです。作業を行う手続きは と呼ばれC
、それを呼び出すのはA
とB
です。
私が抱えている問題は、 を実行するA
とすべてがスムーズに進むことですが、 を実行するB
と、missing expression error
を呼び出したときに得られない が得られA
、さらにタフB
でA
、同じフローのプロシージャ コールが発生することです (つまり、一種の本当に奇妙なエラー)。
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
. さらに詳細が必要な場合は、お知らせください。