若是字段名字是“小明”SQL> select table_name,column_name from dba_tab_columns where column_name=upper('username');TABLE_NAME                     COLUMN_NAME
------------------------------ ------------------------------
ALL_DB_LINKS                   USERNAME
ALL_REPGROUP_PRIVILEGES        USERNAME
ALL_USERS                      USERNAME
DBA_AUDIT_EXISTS               USERNAME
DBA_AUDIT_OBJECT               USERNAME把username改成小明,试试

解决方案 »

  1.   

    可能我说的还不明确,我要不是字段名为“小明”,是表中包含“小明”这个数据。如下:
    表a:
    column1  column2  column3  
    a1         b1      c1  
    a2         b2      c2
    a3         小明    c3
    a4         b4      c4
    a5         b5      c5是否能够在不知道表名“a”的情况下,全库搜索出含“小明”的表“a”呢?
      

  2.   

    能倒是能,我说下思路你肯定会后悔的,
    首先你先做个function
    fonction里边定义一cursor
    select * from cols where data_type = 'VARCHAR2'//你可以加上NVARCHAR2啥的随便
    然后你就知道数据库的所有表,以及所有裂了
    对于每个标的每个列,用动态sql执行
    select count(1) from xxxx where xxx like xxxval
    其中xxxval = '%'||参数||'%'
    你想象效率把
      

  3.   

    select distinct table_name from    user_tab_cols where column_name=upper('小明')
      

  4.   

    即是想这样做,自然是明白其效率的,也是有足够的准备的
    非常感谢AFIC的思路
    问题是,如果可以实现,有没有更优越的算法来完成这个思路呢?
    用cursor一系一条地来取,那无异于我一个表一个表地“手工”查看
      

  5.   

    相当于从数据字典里先取出所有表,再取出表里的所有字段,再动态生成一句sql?两层循环....再加个schme过滤下吧
      

  6.   

    能实现
    问题是利用oracle实现太麻烦了.
    你能否考虑用pb的动态生成数据窗口功能实现呢?