PL/SQL 遍历某一行数据的每一列
首先我已经找了好久这个问题的答案了,知道有一种方法可以实现
select b.* from (select rownum as num,b.* from table1 as b) where num = 1
这个就是可以根据列名组成动态sql查询出某一行的某一列的值
但是,但是,这样的话数据量大了会很慢很慢,想象一下,10列 * 3000行 就是3W个值,我得每次查询某行某列的值都必须select一回,大大浪费了时间
现在的情况是,我已经有了列名的集合,可以循环得到每列的列名,但是注意,列名是保存在变量中的,
如果通过游标去控制数据查询,游标每指向一行,该行的数据只能通过A.col_name这种方式获取,col_name是已知的列名,关键是我这里列名是存储在变量中的!
有没有一种思路,可以查询10*3000这种矩阵数据时,速度快些,循环的话,一行一行来,每到一行再遍历每一列,注意注意,该数据集有多少列每列都叫什么名字是动态的。
------解决方案--------------------这种处理方式值得商榷啊,就相当于匿名遍历,很难解决。这是在哪里遍历?
------解决方案--------------------很赞成楼主的想法,这种循环就是慢,还不如用游标呢
------解决方案--------------------那如果使用数据字典呢??
------解决方案--------------------列名固定,无论有多少:
for c in (select ...) loop
c.列1......;
c.列2......;
c.列3......;
......
c.列n......;
end loop;
列名可变
用 dbms_sql 包。