过程里
select into 变量
但是表名是由传进来的参数动态拼接的。
1.直接过程里执行select into 变量 from 表名 where ,但是不会拼表名。
2.用execute immediate sql_str的话应该也不行吧。
请教高手这里应该怎么实现?

解决方案 »

  1.   

    用动态sql,定义一个变量,
    sql_str := '';
    execute immediate sql_str into 变量;
      

  2.   


    declare 
            v_importTBName varchar2(10);
            v_tbName varchar2(10);
            v_sql varchar2(4000);
    begin
         --传递的表名
         v_importTBName:='v_test';   
         v_sql:='select count(1) into v_tbName from '|| v_importTBName;
         dbms_output.put_line(v_sql);
         --execute immediate v_sql; 
    end;/*
    只能输出语句,
    select count(1) into v_tbName from v_test
    带有into 的语句不能直接用 execute immediate ,
    等待高手来讲解...
    */
      

  3.   

    串接动态sql
    execute immediate 
      

  4.   

    动态串接sql
    execute immediate 
      

  5.   

    串接动态sql
    execute immediate 
      

  6.   

    execute immediate 可以使用 ‘into’ 导出结果, 也可以使用 using 引入变量值