oracle怎么查询的sql中字段包含某个字段
2016-12-27 · 知道合伙人互联网行家
关注
展开全部
--我这里说的字段名跟列 是同一个意思
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;
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;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询