procedure MoveData is     
                
            v_NewNode number;
            v_OldNode number;
            v_ret number;
            v_Domain varchar2(100);
         
            cursor cur_move is 
             select newnode,oldnode,domain into v_NewNode,v_OldNode, v_Domain from test_nasmove;            begin
            for mobile in cur_move loop
            v_ret:=AddMoveDataToOrignNas(v_OldNode,v_NewNode,v_Domain);
            end loop;
          end MoveData;
这个是循环取出表test_nasmove数据处理的过程,表中有数据,
但为什么v_NewNode,v_OldNode, v_Domain 一直都是NULL.          

解决方案 »

  1.   

    你的 cur_move   没有OPEN
      

  2.   

    declare 
    code varchar2(20);
    danjia varchar2(20);
    cursor cur is select c.vend_code,c.licence_q from tb_ls75 c where rownum<20;
    begin
    open cur;--打开游标
    loop
    fetch cur into code,danjia;
    DBMS_OUTPUT.put_line(code);
    exit when cur%notfound;
    end loop;
    close cur;;--关闭游标
    end;
    简单游标使用如上
      

  3.   

    你这用法肯定不行  
    procedure MoveData is  
       
      v_NewNode number;
      v_OldNode number;
      v_ret number;
      v_Domain varchar2(100);
       
      cursor cur_move is 
      select newnode,oldnode,domain from test_nasmove;  begin
      for mobile in cur_move loop
      v_NewNode,v_OldNode, v_Domain //给这三个变量赋值
      v_ret:=AddMoveDataToOrignNas(v_OldNode,v_NewNode,v_Domain);
      end loop;
      end MoveData;
      

  4.   


    procedure MoveData is   
        
      v_NewNode number;
      v_OldNode number;
      v_ret number;
      v_Domain varchar2(100);
        
      cursor cur_move is  
      select newnode,oldnode,domain from test_nasmove;--游标里面sql语句不能into 变量  begin  for cur_move_rec in cur_move 
      loop
      v_NewNode:=cur_move_rec.newnode;
      v_OldNode:=cur_move_rec.v_OldNode;
      v_Domain:=cur_move_rec.domain;
      v_ret:=AddMoveDataToOrignNas(v_OldNode,v_NewNode,v_Domain);  dbms_output.put_line(to_char(v_NewNode)||'  '||to_char(v_OldNode)||' '||to_char(v_Domain));
      dbms_output.put_line(v_ret);
      end loop;
      end MoveData;