比如说我知道当前数据库中存在testtest 这个字符串
但是我不知道它在哪个表的哪个字段。。 现在想把这个表与这个字段找出来 , 请问SQL应该怎么写啊?

解决方案 »

  1.   

    http://topic.csdn.net/u/20101110/15/06f0d4d1-f537-4124-b2f5-aabd98b2d0df.html
    跟你相同的需求 
    提供的方法有好几种 你看看
      

  2.   

       在左边的栏目上可以选择MyObjects撒,就可以知道你的数据库中到底有几张是你的表咯,然后自己去看。
      

  3.   

    啊不好意思,,忘了这个贴子了。。
    还有一点, 如果表里面的行数超过了100行,则跳过这个表。。不对这个表进行搜索。
    应该怎么写SQL呢?  
    我不会ORACLE呃。
      

  4.   


    ---最好分析下表
    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 过程已成功完成。
     
      

  5.   

    select * FROM tab where tname='testtest';