oracle怎么查询的sql中字段包含某个字段
1个回答
展开全部
--我这里说的字段名跟列
是同一个意思
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;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询