Oracle PL/SQLで作業しています。 c1とc2の2つのカーソルがあります。カーソル付きのPL/SQLネストループ
v_temp VARCHAR(50);
For s1 IN c1
LOOP
--do something
FOR s2 IN c2
LOOP
--do something
v_temp := s1.s2.xxx; --PLS-00302: component 's2' must be declared
END LOOP;
END LOOP;
s2.xxx
は、列名を与え、その列の名前で私はs1
からv_temp
に、その列の値を代入したいと考えています。 例: 最初の繰り返しでは、s2.xxx
は'column1'
, s1.column1
をv_temp
に割り当てたいとします。 2回目の反復では、s2.xxx
は'column2'
で、s1.column2
をv_temp
に割り当てたいとします。
コンパイルしようとしたときにエラーが発生しました: Error(191,48): PLS-00302: component 's2' must be declared
私はs1.s2.xxx
が有効ではないことを知っていますが、それを動作させる別の方法がありますか?
v_tempに割り当てるすべての列データがVARCHAR2(50)に収まるようにしますか。 。 –
すべての列のデータ型がVARCHAR2(<50) – Gab1991