比如给定一sql语句select col_name from table;
如何根据字段col_name获得这条sql语句所查的表名table

解决方案 »

  1.   


    select * from user_tab_cols
    where column_name='ID'
      

  2.   

    select table_name from user_tab_cols 
      where column_name=upper('yourcolname')
      

  3.   

    各位大虾,向上面二位那么做的话,如果有多个表有相同的列名,那么得到的表名将有多个,但一条给定的sql语句实际上只有一个表的,这该如何解决???
      

  4.   

    我现在想根据一条sql语句和这条sql语句所查询的一个字段名获得这个字段所对应的表名,有没有办法呢???
      

  5.   

    我只知道一条语法正确的sql语句和所查询的一个字段;
    一条sql语句只是一个字符串整体,我想获得所需的表名,利用这个表名去执行另一个查询操作;
    能不能实现呢???
      

  6.   

    那你如果能获取到字段名,那么获取表名也是一样的吧
    from 后的第一个字符串即是表名
      

  7.   

    SELECT TABLE_NAME FROM USER_TAB_COLUMNS WHERE COLUMN_NAME =uppser(yourcolumn_name);
    如果该列名在数据库中不唯一,那么查询出来的是所有满足条件的表名。
    如果要获得满足查询条件的唯一的表名,则需要增加查询条件。
      

  8.   

    你的sql语句里不就有表名,还用从别处获取?
      

  9.   

    刚刚看到一个dbms_sql的包。里面应该有你需要的功能。
      

  10.   

    直接截取from 到where 之间,就是你的表名了. 干嘛还通知列来查询. 
    如果库里面有列名相同的,只用列,没办法判断到唯一的