表 按内容查询

maxuyang888 2013-06-25 10:39:44
假如有 tab1, tab2, tab3, tab4 几张表 ,现在模糊查询几张表中 有内容 ‘纳税人’ 的信息,
然后列出表中所有相关信息。请高人给予提示或相关代码。
...全文
89 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
maxuyang888 2013-06-26
引用 4 楼 u010412956 的回复:
这个是以前一个差不多 的例子,利用穷举法:

--在scott用户下面,搜索含有'TEST'的数据的表和字段
declare
  v_Sql   varchar2(2000);
  v_count number;
begin
  for xx in (select t.OWNER, t.TABLE_NAME, t.COLUMN_NAME
               from dba_tab_columns t
              where t.OWNER = 'SCOTT') loop
    begin
      v_Sql := 'select count(1) from ' || xx.owner || '.' || xx.table_name ||
               ' where ' || xx.column_name || ' like ''%TEST%'' ';
      execute immediate v_Sql
        into v_count;
      if (v_count >= 1) then
        dbms_output.put_line(xx.table_name || ':' || xx.column_name);
      end if;
    exception
      when others then
        null;
    end;
  end loop;
end;
非常感谢
回复
hh7yx 2013-06-25
这个是以前一个差不多 的例子,利用穷举法:

--在scott用户下面,搜索含有'TEST'的数据的表和字段
declare
  v_Sql   varchar2(2000);
  v_count number;
begin
  for xx in (select t.OWNER, t.TABLE_NAME, t.COLUMN_NAME
               from dba_tab_columns t
              where t.OWNER = 'SCOTT') loop
    begin
      v_Sql := 'select count(1) from ' || xx.owner || '.' || xx.table_name ||
               ' where ' || xx.column_name || ' like ''%TEST%'' ';
      execute immediate v_Sql
        into v_count;
      if (v_count >= 1) then
        dbms_output.put_line(xx.table_name || ':' || xx.column_name);
      end if;
    exception
      when others then
        null;
    end;
  end loop;
end;
回复
maxuyang888 2013-06-25
引用 2 楼 u010412956 的回复:
你这个需求没说清楚 查询类别:内容 是什么意思? 还有看你的截图,每个表只有2列么?
内容:就是字段列中有 “纳税人” 三个字的,就显示出来 , 表中有几个列不确定
回复
hh7yx 2013-06-25
你这个需求没说清楚 查询类别:内容 是什么意思? 还有看你的截图,每个表只有2列么?
回复
maxuyang888 2013-06-25
回复
相关推荐
发帖
Oracle
创建于2007-09-28

1.6w+

社区成员

Oracle开发相关技术讨论
申请成为版主
帖子事件
创建了帖子
2013-06-25 10:39
社区公告
暂无公告