比如select table2_name from table1;这里的table2_name是table1中的一个字段值,现在就是想继续用table2_name作查询,即select * from table2_name;请教一下,这两句SQL语句如何嵌套,即只用一个SQL语句来实现啊?即像:select * from {select table2_name from table1};即要求在table1中查出表名,再在这个查出的表中再查询数据大虾们帮帮忙啊!!

解决方案 »

  1.   

    select table2_name
    from table1
    where table2_name exits (select 'X' from table2)
      

  2.   

    楼上的兄弟,你好像没明白我的意思,我是要求在table1中查出的表名用作第二条SQL语句的from 后的参数即,主要我是想在table2_name这个表里查询数据,但表2的名字table2_name需从table1中查询得出,不知有没有说明白。
      

  3.   

    我来说一个思路吧:(1)将table2_name从table1取出来,放进游标(2)循环读取游标,拼成字符串:v_sql := 'select   *   from' ||  table2_name
         执行动态语句:execute immediate v_sql
      

  4.   

    table1表查找的时候没有条件,如果是多表的话..看来只能用游标....
    还要循环拼字符串,还后再动态执行SQL语句...
      

  5.   

    declare
        v_count number;
        v_sql varchar2(3000);begin 
        for v_table1 in (select table_name2 from table1) loop
            begin 
                v_sql:='select count(*) from '||v_table1.table_name2;
                execute v_sql into v_count;
                dbms_output.put_line('表:'||v_table1.table_name2||'的记录数为:'||to_char(v_count));
            excepition 
                when others then 
                    dbms_output.put_line('表或视图:'||v_table1.table_name2||'不存在.');
            end;
        end loop;
    end ;
      

  6.   

    如果查出来表名只有一个,可以只用一句SQL来表示吗?还是非得用游标?
      

  7.   

    顶一下,能一句SQL语句写出来吗?
      

  8.   

    在PL/SQL中可以这样操作:
    set heading off
    set feedback off
    spool mysql.sql
    select 'select * from '||table_name2||';'
    spool off
    @mysql.sql
      

  9.   

    不是可以这样操作的吗?
    SQL:select * from (select table2_name from table1) a where 条件
    有分给点,没分拉倒.
      

  10.   

    select   *   from   (select   table2_name   from   table1)   a   where   条件 这样不行的吧,貌似只能用动态sql语句
      

  11.   

    这种只能用动态sql语句,死心吧