如何搜索库中的所有表?

joejoe1991 2011-01-14 10:40:35
比如说我知道当前数据库中存在testtest 这个字符串
但是我不知道它在哪个表的哪个字段。。

现在想把这个表与这个字段找出来 , 请问SQL应该怎么写啊?
...全文
113 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
心中的彩虹 2011-01-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 joejoe1991 的回复:]
啊不好意思,,忘了这个贴子了。。
还有一点, 如果表里面的行数超过了100行,则跳过这个表。。不对这个表进行搜索。
应该怎么写SQL呢?
我不会ORACLE呃。
[/Quote]

---最好分析下表
SQL> create table tb_joe(name varchar2(10))
2 /

表已创建。

SQL> insert into tb_joe values('testtest');

已创建 1 行。

SQL> commit
2 /

提交完成。

SQL> declare
2 v_tbname varchar2(30);
3 v_colname varchar2(30);
4 num number;
5 str varchar2(1000);
6 begin
7 for i in (select a.table_name,a.column_name,num_rows from user_tab_cols a,user_tables b
8 where a.table_name=b.table_name and num_rows<101 and data_type in('VARCHAR','VARCHAR2','CHAR'))
9 LOOP
10 execute immediate 'select count(*) from '||i.table_name||' where instr('||i.column_name||',''testtest'')>0' into num;
11 if num>0 then
12 dbms_output.put_line('表名 '||i.table_name||' '||i.column_name);
13 end if;
14 end loop;
15 end;
16 /

表名 TB_JOE NAME

PL/SQL 过程已成功完成。





hyf_0023 2011-01-18
  • 打赏
  • 举报
回复
select * FROM tab where tname='testtest';
maitianhust 2011-01-17
  • 打赏
  • 举报
回复
从数据字典里找,思路。
zhengde007 2011-01-17
  • 打赏
  • 举报
回复
是有过程吧
joejoe1991 2011-01-17
  • 打赏
  • 举报
回复
啊不好意思,,忘了这个贴子了。。
还有一点, 如果表里面的行数超过了100行,则跳过这个表。。不对这个表进行搜索。
应该怎么写SQL呢?
我不会ORACLE呃。
zty598416146 2011-01-16
  • 打赏
  • 举报
回复
效率肯定不会高...
coolkisses 2011-01-16
  • 打赏
  • 举报
回复
这个需求太可怕了,要把所有表都扫描一遍,等它扫描完,1天? 3天?
lemontree9083 2011-01-16
  • 打赏
  • 举报
回复
在左边的栏目上可以选择MyObjects撒,就可以知道你的数据库中到底有几张是你的表咯,然后自己去看。
iqlife 2011-01-14
  • 打赏
  • 举报
回复
什么需求,要去这样做》?
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20101110/15/06f0d4d1-f537-4124-b2f5-aabd98b2d0df.html
跟你相同的需求
提供的方法有好几种 你看看

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧