语句放在循环中 表名 可否是变量?
 select count(*) into  flag_exits   from
       (select a.calling_number calling_number,b.area_name area_name,count(a.calling_number) c_count
          from   table_name a,t_area b  --table_name 是个变量
          where a.called_number  like '163%' and a.calling_area_id = b.area_id
          group by a.calling_number,b.area_name) c where c.calling_number in
       (select calling_number from xue_test);如何解决?   在线等待  谢谢!!!!!!!!

解决方案 »

  1.   

    execute immediate ' select count(*) into  flag_exits   from
           (select a.calling_number calling_number,b.area_name area_name,count(a.calling_number) c_count
              from  '|| table_name||' a,t_area b  --table_name 是个变量
              where a.called_number  like ''163%'' and a.calling_area_id = b.area_id
              group by a.calling_number,b.area_name) c where c.calling_number in
           (select calling_number from xue_test)';
      

  2.   

    execute immedate 'xxxxx' into xx
      

  3.   

    SQL> 
    SQL> CREATE OR REPLACE PROCEDURE proc_tett
      2  AS
      3   v_count NUMBER(2);
      4   cur SYS_REFCURSOR;
      5  BEGIN
      6   OPEN cur FOR 'select count(*) cnt from dual' ;
      7   FETCH cur INTO v_count;
      8   IF v_count=1 THEN
      9      dbms_output.put_line('123');
     10   END IF;
     11   CLOSE cur;
     12  END;
     13  /
     
    Procedure created
     
    SQL> set serveroutput ON SQL> exec proc_tett;
     
    123
     
    PL/SQL procedure successfully completed
     
    SQL> 
      

  4.   


    execute immediate ' select count(*)  from
      (select a.calling_number calling_number,b.area_name area_name,count(a.calling_number) c_count
      from '|| table_name||' a,t_area b --table_name 是个变量
      where a.called_number like ''163%'' and a.calling_area_id = b.area_id
      group by a.calling_number,b.area_name) c where c.calling_number in
      (select calling_number from xue_test)'  into flag_exits;