表 按内容查询

老马888 2013-06-25 10:39:44
假如有 tab1, tab2, tab3, tab4 几张表 ,现在模糊查询几张表中 有内容 ‘纳税人’ 的信息,
然后列出表中所有相关信息。请高人给予提示或相关代码。
...全文
122 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
老马888 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;
非常感谢
u010412956 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;
老马888 2013-06-25
  • 打赏
  • 举报
回复
引用 2 楼 u010412956 的回复:
你这个需求没说清楚 查询类别:内容 是什么意思? 还有看你的截图,每个表只有2列么?
内容:就是字段列中有 “纳税人” 三个字的,就显示出来 , 表中有几个列不确定
u010412956 2013-06-25
  • 打赏
  • 举报
回复
你这个需求没说清楚 查询类别:内容 是什么意思? 还有看你的截图,每个表只有2列么?
老马888 2013-06-25
  • 打赏
  • 举报
回复

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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