oracle 不用游标进行遍历,自己写的大家看对不对?
原表是这样的way( source,destination);
首先创建临时表:
create global temporary table t1
( id int;
source1 char(20);
destination1 char(20);
)
@counter int;//创建技术变量
@sum/原表总行数
set @counter = 1;
select counter(source)
into @sum
from way;
//总行数
@source char(20)
@destination char(20)
//循环读取原表的列,并将序号及原表的每一行输入至新表
while @counter <= @sum
loop
select source,destination
into @source,@destination
where rownum = @counter
insert into t1(id,source1,destination1)
values( @counter,@source,@destination)
end loop;
之前看的rownum是自增关键字,不知道这么用对不对?
如果不对的话请问怎么用sequence呢?
------解决方案--------------------你这肯定不对,你把rownum想的太神奇了。
你得先借助rownum,把每行的序号求出来。然后再用循环,注意,循环体内得有变量
FOR I_ALL IN 1..ALL_ROWNUM LOOP
select ....
FROM (SELECT T.*,ROWNUM RN FROM DW_TICKET_NEW T where t.statice_time=II_DATE)
WHERE RN=I_ALL;