【发布时间】:2018-01-16 15:12:54
【问题描述】:
我使用了两个游标 1) c_emp 游标有表数据。 2) c_column_names 游标具有表中的列。 我想动态地使用 c_column_names 游标从 c_emp 游标中获取所有列的数据。
我尝试使用以下代码,但它不起作用:
create or replace procedure sp_read_data(in_tb_nm varchar2) as
cursor c_emp is select * from test_table;
begin
open c_column_names for select column_name from all_tab_columns where table_name = 'TEST_TABLE';
for emp_row in c_emp
loop
loop
fetch c_column_names into lc_record;
exit when c_column_names %notfound;
lc_col_nm := 'emp_row.'||lc_record;
v_dtl := v_dtl || rpad (lc_col_nm, 20, ' ');
end loop;
end loop;
end sp_read_data;
有没有办法动态访问游标数据?
【问题讨论】:
-
不清楚您要达到的目标。参数
in_tb_nm的用途是什么?你在哪里声明lc_record?也许向我们展示静态 SQL 的样子。 -
这里需要 2 个循环吗?另外,让我们知道您的最终预期结果是什么。可能有更简单的方法来实现它