查找 oracle 数据库中包含某一字段的表名

我不知道表名,知道列名 ,知道列里面有内容是‘xiaoming’
如何能把这个表的表名查找出
要找的不是字段名为xiaoming的,某个字段里面的内容 叫xiaoming,
比如 字段名 为NAME 的字段下 内容 为 xiaoming 的所有的表

--我这里说的字段名跟列 是同一个意思

select column_name,
table_name,data_type ,data_length,data_precision,data_scale from user_tab_columns where column_name='字段名'; 
--根据字段名查出相关的表名出来。记录下来
--然后对查出来的表进行查询,找到含这内容字段的表
select  * from 表名 where 字段名='xiaoming'

追问

我查出来的有800多个表,有没有什么方法能更便捷一些 能查出来 内容 包含‘xiaoming’的

追答declare
l_cnt    varchar2(20);
v_sql  varchar2(4000);
v_tablename varchar(200);
  cursor cursor_jsdx is select 'select count(*) from ' || table_name || ' where NAME=''xiaoming''',table_name from user_tab_columns where column_name='NAME';
  --注:这里的字段名要大写 
begin
     open cursor_jsdx;
     
     
     Loop
            fetch cursor_jsdx into v_sql,v_tablename;
            exit when cursor_jsdx%notfound;
            execute immediate v_sql       into l_cnt;           
         if l_cnt >0 then   
         ---如果该表有那内容的就打印那个表的名字。
            dbms_output.put_line(v_tablename);
         end if;       

     end loop;
     
    Close cursor_jsdx;


end;

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-23
select ’select * from '||owner||'.'||table_name||' where ‘||column_name||’=‘‘xiaoming’
’;' from dba_tab_columns
where column_name='列名'
;
执行完这个结果,再把结果贴上,当做命令执行,有结果的就是你要找的表
第2个回答  2013-09-23
Oracle system用户下执行 select table_name from DBA_TAB_COLUMNS where COLUMN_NAME='字段名';
第3个回答  2013-09-23
select table_name from all_tab_columns
where column_name like '%XIAOMING%'追问

要找的不是字段名为xiaoming的,某个字段里面的内容 叫xiaoming,
比如 字段名 为NAME 的字段下 内容 为 xiaoming 的所有的表

追答

select 'select * from '|| table_name ||' where 你知道的列名=''xiaoming'';'

from all_tab_columns
where column_name ='你知道的列名'

将得到的SQL语句,再执行

第4个回答  2013-09-23
这个不行吧,这你要问DBA了
可以猜猜着试试,这个估计是名字,先查列名有没有对应name的,再找那些表

查找oracle 数据库中包含某一字段的表名
--我这里说的字段名跟列 是同一个意思select column_name,table_name,data_type ,data_length,data_precision,data_scale from user_tab_columns where column_name='字段名'; --根据字段名查出相关的表名出来。记录下来--然后对查出来的表进行查询,找到含这内容字段的表select * from 表名 whe...

查找oracle 数据库中包含某一字段的表名
将oracle所有的表unload出来,形成一组文本文件,然后利用文本搜索命令grep(Unix环境下),查找'xiaoming'字符串,然后找到对应的文件及所在行;你可以数一下该字符串在第几列;再对应找到该表的结构就能够找到列名了。

oracle数据库查找所有表的字段名称
1、MySQL数据库查询带有某个字段的所有表名:SELECT * FROM information_schema.columns WHERE column_name='column_name';2、Oracle数据库查询带有某个字段的所有表名:SELECT column_name,table_name FROM user_tab_columns WHERE column_name='column_name';3、SQLServer数据库查询带有某个字段的所有表...

怎样在ORACLE中查询并列出所有含某一列名(如NAME)的表;
where user = '你的用户' and column_name = ‘NAME列名’;与列信息有关的3个数据字典user_tab_columns(当前用户所拥有的表列 ),all_tab_columns(可访问的表列),dba_tab_columns(所有表列)

如何查询oracle数据库中已经存在的数据表名称
select * from user_tables --查询当前用户所拥有的表 select * from all_tables --查询当前用户能访问的表 select * from dba_tables --拥有DBA权限用户能查询所有的表

oracle里查出某个数据库里的所有表名
all_tables WHERE owner='SCOTT';或者 SELECT FROM DBA_TABLES WHERE OWNER='SCOTT';数据字典视图 表和列 DBA_TABLES、ALL_TABLES和USER_TABLES显示了有关数据库表的一般信息。DBA_TAB_COLUMNS、ALL_TAB_COLUMNS和USER_TAB_COLUMNS显示了每个数据库表的列的信息。注意:DBA_OBJECTS、ALL_OBJECTS和USER_...

如何查询oracle一个数据库中包含有某个特定值的所有表及字段名
这个不可能使用简单一个查询语句来实现这个功能。因为你的这个需要基本都是比一定逻辑的查询,实现起来有相当的难度。因为首先要确定有多少张表,每张表中有多少个字段,然后才能实现某个字段中的某条记录包含你所需要的这个特定的值。

oracle怎样查看数据库中有数据的表
觉得你应该先弄清楚oracle的常规数据字典的结构,像9i里的常规数据字典中对象名称就有以USER,ALL,DBA为前缀的对象。以USER为例,我们查该对象下有些什么表,就应该执行下列的语句:SQL>select table_name from user_tables;类似的,你可以进行替换。:)如果你想查数据库中所有的表的话,可以查询 SELECT...

在Oracle数据库中如何查询某一个表空间下的某张表里面的数据;怎么查 ...
SELECT TABLESPACE_NAME,TABLE_NAME FROM DBA_TABLES WHERE TABLESPACE_NAME='XXXX';其中XXXX为你要查的表空间名字,这样就能查处指定表空间下的所有表,希望能帮到你

oracle里查出某个数据库里的所有表名
方法和详细的操作步骤如下:1、第一步, MySQL数据库使用特定字段查询所有表名,代码见下图,转到下面的步骤。2、第二步,执行完上面的操作之后,Oracle数据库使用特定字段查询所有表名,代码见下图,转到下面的步骤。3、第三步,执行完上面的操作之后,SQLServer数据库使用特定字段查询所有表名,代码见...

相似回答