感谢您花时间阅读并回答我的问题!请注意,我是初学者,不应被视为专业人士,但我确实在没有找到答案的情况下搜索了答案,这可能是由于我不常见的问题和/或缺乏相关知识。
我在工作中遇到以下问题,我知道它不应该发生,但它就在我的办公桌上......:
我有一个包含以下列的表(conv_temp1):
ID No Sigle Info COLUMN_1 COLUMN_2 COLUMN_3 COLUMN_4 COLUMN_5 .. COLUMN_50
我有这个光标:
CURSOR c_minis IS
SELECT *
FROM conv_temp1;
我正在尝试执行以下操作:
FOR v_rsrec IN c_minis LOOP
l_column_i := 1;
dbms_output.put_line('----- Beginning - v_rsrec.id ----');
FOR boucle IN REVERSE 1.. 50 LOOP
--this is my problem, i am trying to acces a cursor column "dynamically"
EXECUTE IMMEDIATE 'v_declared_varchar2 := COLUMN_'|| l_column_i ||';';
IF v_declared_varchar2 IS NOT NULL THEN
dbms_output.put_line('I am doing something with the information!');
--(Dont worry, YES I am re-structuring it in a new table...)
END IF;
l_column_i := l_column_i + 1;
END LOOP;
dbms_output.put_line('-----c end - v_rsrec.id ----');
END LOOP;
有没有办法根据我在迭代中的位置来执行访问不同列(只有这些列的名称中的数字发生变化)之类的事情?例如,如果我已经完成了 10 次迭代,我将从光标中的 COLUMN_11 中恢复信息。