select 'select  * from '||TableName||';' from tableA where id=??

解决方案 »

  1.   

    用动态sql:v_sql:='select * from (select TableName from '|| tabName || 'where ID=?'exec immediate v_sql;
      

  2.   

    存储过程select tablename into ls_tab from a where id = ?;
    sql='select * from '+ls_tab;
    execute sql;
      

  3.   

    一条SQL语句不行,可使用存储过程
    create or replace execselect(in_id varchar2)
    as 
      sqlstr varchar2(100);
      v_tablename varchar2(100);
    begin
    select TableName into v_tablename from A where ID = in_id;
    sqlstr='select * from ' || v_tablename;
    execute immediate sqlstr;
    end;
    /