oracle数据库如何循环取表的列值

wwhui 2010-05-29 04:28:14
比如有如下表(USER):
NAME PARA01 PARA02 PARA03 PARA04 PARA05
U01 1 2 3 4 5
U02 1 2 3 4 5

有没有什么循环,每次只取USER表的一列值.
...全文
398 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuzhen8449397 2010-09-30
  • 打赏
  • 举报
回复
学习!!!
wwhui 2010-05-29
  • 打赏
  • 举报
回复
codearts,谢谢,你的方法不错。
codearts 2010-05-29
  • 打赏
  • 举报
回复
solution 2:

declare
v_sql varchar2(32767);
begin
for i in 1..3 loop
v_sql := 'insert into DATA_COMPARE_ODS_TEMP ' ||
' select t.name, t.para0' || i ' ||
' from user t '
;
execute immediate v_sql;
end loop;
commit;
end;
codearts 2010-05-29
  • 打赏
  • 举报
回复
solution 1:
insert into DATA_COMPARE_ODS_TEMP
select t.name, t.para01
from user t

union all

select t.name, t.para02
from user t

union all

select t.name, t.para03
from user t
;
wwhui 2010-05-29
  • 打赏
  • 举报
回复
大哥,你确定你的这个SQL没问题吗?大致看了下,就算是正确的话得出的结果也不是我想要的啊。
lzbbob1985 2010-05-29
  • 打赏
  • 举报
回复
create or replace procedure text
is

flag number;
begin
EXECUTE IMMEDIATE 'CREATE TABLE USER_TEMP
SELECT T.*,ROWNUM RN FROM USER T' ;

SELECT MAX(RN) INTO FLAG FROM DATA_COMPARE_ODS_TEMP;


For i in 1..FLAG loop
insert into DATA_COMPARE_ODS_TEMP
select t.name,
rn
from USER_TEMPt
WHERE RN = FLAG;
commit;
end loop;



end
wwhui 2010-05-29
  • 打赏
  • 举报
回复
我想要的结果是这样的:
NAME CODE
U01 1
U01 2
U01 3
U01 4
U01 5
U02 1
U02 2
U02 3
U02 4
U02 5
wwhui 2010-05-29
  • 打赏
  • 举报
回复
非常感谢楼上的帮助,但是这行SQL是跑不通的吧,“t.'para0'||i”
lzbbob1985 2010-05-29
  • 打赏
  • 举报
回复


create or replace procedure text
is

flag number;
begin
EXECUTE IMMEDIATE 'CREATE TABLE USER_TEMP
SELECT T.*,ROWNUM RN FROM USER T' ;

SELECT MAX(RN) INTO FLAG FROM DATA_COMPARE_ODS_TEMP;


For i in 1..FLAG loop
insert into DATA_COMPARE_ODS_TEMP
select t.name,
t.'para0'||i
from USER_TEMPt
WHERE RN = FLAG;
commit;
end loop;



end

wwhui 2010-05-29
  • 打赏
  • 举报
回复
比如:
这个存储过程,
for i in 1..3 loop
begin
insert into DATA_COMPARE_ODS_TEMP
select t.name,t.'para0'||i
from USER t;
end;
end loop;
commit;
我想得到这么个效果,但是上面的这个肯定是得不到的.
所以想请教下大家有没有什么好的办法.
lzbbob1985 2010-05-29
  • 打赏
  • 举报
回复
不是很明白lz 想做什么

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧