如何查询一个oracle数据库中所有表的所有字段哪个包含特定字符串?
5个回答
展开全部
你这个要求基本上用一两句t-sql语句无法实现。另外如果是大数据,基本上一查就死了,这个需求基本上属于无理取闹的。因为要实现你的要求,首先要在代码里面获取数据库都有哪些表,这些表都有哪些字段,然后在一个个字段去比较。想想让数据库来实现这些东西都头痛。
不知道全文搜索是不是有这个功能,反正想自己写几行代码就实现这个功能基本上无解。
不知道全文搜索是不是有这个功能,反正想自己写几行代码就实现这个功能基本上无解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个要求基本上用一两句t-sql语句无法实现。另外如果是大数据,基本上一查就死了,这个需求基本上属于无理取闹的。因为要实现你的要求,首先要在代码里面获取数据库都有哪些表,这些表都有哪些字段,然后在一个个字段去比较。想想让数据库来实现这些东西都头痛。
不知道全文搜索是不是有这个功能,反正想自己写几行代码就实现这个功能基本上无解。
不知道全文搜索是不是有这个功能,反正想自己写几行代码就实现这个功能基本上无解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写一个存储过程
将show tables的结果放入一个集合中
然后遍历这个集合
desc table
得到单个表的字段
然后组织查询语句 select * from table where 字段1=‘cc’ or 字段2=’cc‘.......字段n='cc'
运行脚本看结果
这只是思路
将show tables的结果放入一个集合中
然后遍历这个集合
desc table
得到单个表的字段
然后组织查询语句 select * from table where 字段1=‘cc’ or 字段2=’cc‘.......字段n='cc'
运行脚本看结果
这只是思路
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-03-22
展开全部
declare
cnt number;
sqls varchar2(400);
begin
for i in ( select table_name from user_tab_comments where comments is not null )
loop
for j in (select * from user_tab_columns where table_name = i.table_name )
loop
sqls :='select count(*) from '|| i.table_name
||' where ' || j.column_name || ' like ''baidu.com%''' ;
execute immediate sqls into cnt;
if cnt >0 then
insert into test values( 'select ' || j.column_name || ' from ' ||i.table_name|| ';' ) ;commit;
end if;
end loop;
end loop;
end ;
cnt number;
sqls varchar2(400);
begin
for i in ( select table_name from user_tab_comments where comments is not null )
loop
for j in (select * from user_tab_columns where table_name = i.table_name )
loop
sqls :='select count(*) from '|| i.table_name
||' where ' || j.column_name || ' like ''baidu.com%''' ;
execute immediate sqls into cnt;
if cnt >0 then
insert into test values( 'select ' || j.column_name || ' from ' ||i.table_name|| ';' ) ;commit;
end if;
end loop;
end loop;
end ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询