查看哪些表的哪些列含有指定字符串(如‘andy’存在哪些表的哪些列中)

简介:

-- 查看表中列含有指定字符。
SQL> select * from demo1;


NAME                                   ID
------------------------------ ----------
????                                    4
andy                                    1
andy1                                   2
andy2                                   3
liudehua                                3
????                                    5


6 rows selected.


SQL> select * from demo2;


NAME                                   ID
------------------------------ ----------
andy                                    1
andy2                                   3
andy2                                   3
liudehua                                3


SQL> select * from demo3;


NAME                                   ID
------------------------------ ----------
andy                                    1
andy2                                   3
andy2                                   3
liudehua                                3


SQL> set serveroutput on






SQL>DECLARE
  v_sql VARCHAR2(4000);
  v_tb_column VARCHAR2(4000);
  v_cnt NUMBER(18,0);
  cursor cur is SELECT 'SELECT '''||'"'||t1.table_name||'"."'||t1.Column_Name||'"'||''''||' as col_name, NVL(COUNT(t."'||t1.Column_Name||'"),0) as cnt FROM "'||
         t1.table_name||'" t WHERE t."'||t1.column_name||'" like ''%andy%''' AS str
    FROM cols t1 left join user_col_comments t2
      on t1.Table_name=t2.Table_name and t1.Column_Name=t2.Column_Name
    left join user_tab_comments t3 
      on t1.Table_name=t3.Table_name 
   WHERE NOT EXISTS ( SELECT t4.Object_Name FROM User_objects t4
               WHERE t4.Object_Type='TABLE' 
                 AND t4.Temporary='Y' 
                 AND t4.Object_Name=t1.Table_Name )
     AND (t1.Data_Type='CHAR' or t1.Data_Type='VARCHAR2' or t1.Data_Type='VARCHAR')
   -- AND t1.table_name='RUN_STATS'
   ORDER BY t1.Table_Name, t1.Column_ID;
 
BEGIN
  FOR i IN cur LOOP
    v_sql := i.str; -- 获取将要执行的SQL语句;
    EXECUTE IMMEDIATE v_sql INTO v_tb_COLUMN, v_cnt;
    IF v_cnt > 0 THEN
      dbms_output.put_line('table'||substr(v_tb_column,1,instr(v_tb_column,'.',1,1)-1)||' col'||substr(v_tb_column,instr(v_tb_column,'.',1,1)+1)||' has string"andy" ');
    END IF;
  END LOOP;
EXCEPTION WHEN OTHERS THEN
BEGIN
  dbms_output.put_line(v_sql);
  dbms_output.put_line(v_tb_column);
END;
END;
/






结果输出:
table"DEMO1" col"NAME" has string"andy"
table"DEMO2" col"NAME" has string"andy"
table"DEMO3" col"NAME" has string"andy"
table"TEAM" col"MENTOR" has string"andy"


PL/SQL procedure successfully completed.

 

参考:http://bbs.csdn.net/topics/350154546



本文转自 张冲andy 博客园博客,原文链接:http://www.cnblogs.com/andy6/p/6230878.html   ,如需转载请自行联系原作者

相关文章
|
5月前
|
机器学习/深度学习 人工智能 搜索推荐
安卓声音克隆:让你的声音独一无二,探索个性化语音新世界!
在这个数字化飞速发展的时代,个性化已成为我们追求的重要目标之一。从独特的手机铃声到定制化的社交媒体内容,我们总希望能展现出与众不同的自我。那么,你是否想过在安卓设备上也能找到声音克隆的神奇功能,让你的
|
人工智能 监控 安全
基于Raspberry Pi人脸识别自动门
基于Raspberry Pi人脸识别自动门
213 2
|
机器学习/深度学习 存储 编解码
深度学习助力数据压缩,一文读懂相关理论
在网络带宽有限的年代,数据压缩显得尤为可贵。还记得美剧硅谷第一季里面大杀四方的数据压缩算法让 pied piper 公司炙手可热。高效的数据压缩使得大型网络应用能够在移动端成为可能,其前景非常诱人。大数据时代的来临,数据的体量和数据的增长速度都达到了一个前所未有的高度。随着 5G 技术的快速发展,边缘计算、物联网、联邦学习等应用需求及应用场景越来越多。在传输网络和存储能力有限的情况下,数据压缩技术发挥了越来越重要的作用。在传统数据压缩算法不断发展的同时,近年来深度学习网络也应用于数据压缩中获得了很好的效果。
1028 0
深度学习助力数据压缩,一文读懂相关理论
|
云安全 分布式计算 数据中心
《云安全原理与实践》——1.1 云计算的发展历程
本节书摘来自华章计算机《云安全原理与实践》一书中的第1章,第1.1节,作者:陈兴蜀,葛龙著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
4023 0
|
Perl
马知恩周义仓编常微分方程定性与稳定性方法部分习题参考解答
第一章    基本定理   1设有 $$\bex \frac{\rd \bbx}{\rd t}=\bbf(t,\bbx),\quad \bbx(t_0)=\bbx^0,\quad (t_0,\bbx^0)\in \bbR\times \bbR^n.
5541 0
|
JavaScript 前端开发 数据格式
Vue 2.x折腾记 - (16) 基于Ant Design Vue 封装一个配置式的表单搜索组件
这次的后台管理系统项目选型用了Vue来作为主技术栈; 因为前段时间用过React来写过项目(用了antd),感觉棒棒的。 所以这次就排除了Element UI,而采用了Ant Design Vue; 在分析整个项目原型后,发现又可以抽离类似之前的React表格搜索组件
1131 0
|
边缘计算 人工智能 Cloud Native
100页ppt讲清楚云原生(1)
100页ppt讲清楚云原生(1)
1144 0
100页ppt讲清楚云原生(1)
|
JavaScript 编译器 索引
TS进阶篇 | TS高级类型之字面量类型、联合类型、交叉类型(下)
TypeScript中除了基本类型之外,还定义了很多高级类型,高级类型包括字面量类型、联合类型、交叉类型、索引类型、映射类型、条件类型、this类型等。因为内容太多,所以这篇文章先来介绍前三个类型,其余类型会在高级类型的下篇介绍。
1043 0
|
新零售 人工智能 监控
兴城人居:数字时代的智慧物业应该长这样|案例酷
成都兴城人居地产投资集团股份有限公司是区域内实力强劲的地产开发企业。近几年,兴城人居持续构建智慧物业“一体化”模式,丰富“智慧社区”衍生产品,为业主提供生活综合服务,将云上的在线业务与线下服务密切结合,探索出了一条社区服务运营的数字化、智慧化路径。疫情持续,更凸显出兴城人居前期布局的价值。
兴城人居:数字时代的智慧物业应该长这样|案例酷
|
机器学习/深度学习 计算机视觉 异构计算
使用opencv实现实例分割,一学就会|附源码
本文讲述如何使用opencv的dnn模块去与其它成熟深度学习工具相连接,并实现语义分割任务。
5851 0
下一篇
开通oss服务