您希望得到的结果可以用个例子表示出来么?
MSN:[email protected]

解决方案 »

  1.   

    例如源表T1中的两个字段start_num='87440009',end_num='87449000'。目标表T2字段thousand_num和目标表T3的字段hundred_num。87449000-87440009=8996,那么就做循环把'87440009'到'87449000'之间的值赋给thousand_num,如果end_num-start_num是百位,那么循环赋值给hundred_num。因为做for循环是对数据类型为number的,而我的源表字段是varchar2,同时要判断是start_num到end_num之间的值要赋给thousand_num还是hundred_num??
      

  2.   

    赋给thousand_num的时候其他的字段是怎么给的。因为表还有其他的字段
      

  3.   

    declare
      start_num T1.start_num@TYPE;
      end_num T1.end_num@TYPE;
      thousand_num T2.thousand_num@TYPE;
      hundred_num T3.hundred_num@TYPE;
      temp T1.start_num@TYPE;  CURSOR t1_cursor IS
        SELECT start_num ,end_num FROM T1BEGIN
      OPEN t1_cursor;  FETCH
        t1_cursor
      INTO start_num,end_num;  IF start_num>end_num THEN
        FOR temp IN start_num..end_num LOOP
          INSERT INTO T2 values(temp);
        END LOOP;
      ELSE
        FOR temp IN start_num..end_num LOOP
          INSERT INTO T3 values(temp);
        END LOOP;  CLOSE t1_cursor;END;
      

  4.   

    从start_num到end_num一个一个的取值  --这个是什么意思,自增一来取值?
      

  5.   

    楼上 sunlen(伏枥),我觉得你写的有 些问题IF start_num>end_num THEN
        FOR temp IN start_num..end_num LOOP
          INSERT INTO T2 values(temp);
    end_num 肯定比start_num大的,而且start_num,end_num 都是varchar2,能直接FOR temp IN start_num..end_num LOOP这样做for循环吗?
      

  6.   

    declare
      start_num varchar2(20); 
      end_num varchar2(20); 
      thousand_num varchar2(20); 
      hundred_num varchar2(20); 
      temp  number(20);  CURSOR t1_cursor IS
        SELECT start_num ,end_num FROM T1BEGIN
      OPEN t1_cursor;  FETCH
        t1_cursor
      INTO start_num,end_num;
      
    FOR temp IN to_number(start_num)..to_char(end_num) LOOP
      
      IF length(to_char(end_num)-to_number(start_num))=4 THEN
        INSERT INTO T2 values(to_char(temp)); ELSIF length(to_char(end_num)-to_number(start_num))=3 THEN
       INSERT INTO T3 values(to_char(temp));
     ELSE
    ENDIF;   
    END LOOP;  CLOSE t1_cursor;END;不知道上的写法有没有问题?