我正在使用Oracle PL/SQL。有两个游标,即c1和c2。带光标的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
。在第二次迭代中,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