原表是这样的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呢?

解决方案 »

  1.   

    你这肯定不对,你把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;
      

  2.   

    where rownum = @counter
    听说 rownum后面的比较符号只能用小于号  <如果用等于号的话,只用是等于1, = 1