利用Oracle动态游标实现动态SQL循环遍历

利用Oracle动态游标实现动态SQL循环遍历

  1. create or replace procedure P_TEST_SQL is  
  2. TYPE ref_cursor_type IS REF CURSOR;  --定义一个动态游标   
  3. tablename varchar2(200) default 'ess_client';  
  4. v_sql varchar2(1000);  
  5. mobile varchar2(15);  
  6. usrs ref_cursor_type;  
  7. begin  
  8.   --使用连接符拼接成一条完整SQL   
  9.   v_sql := 'select usrmsisdn from '||tablename||' where rownum < 11';  
  10.   --打开游标   
  11.   open usrs for v_sql ;  
  12.   loop  
  13.       fetch usrs into mobile;   
  14.       exit when usrs%notfound;  
  15.       insert into tmp(usrmsisdn) values(mobile);  
  16.   end loop;  
  17.   close usrs;  
  18.   commit;  
  19. end P_TEST_SQL;  

相关推荐