首页 > 数据库 >oracle根据某个值搜索所有的表及列名

oracle根据某个值搜索所有的表及列名

时间:2022-12-23 16:13:33浏览次数:59  
标签:Name column 列名 t1 表及 oracle Table tb name

1、创建

create or replace procedure A_YANDANCHAN is  -- 名称A_YANDANCHAN可以改掉
  v_sql VARCHAR2(4000);
  v_tb_column VARCHAR2(4000);
  v_cnt NUMBER(18,0);
  v_key VARCHAR(300):= 'Material_factory_certificate';

  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 ''%'|| v_key ||'%'' ' 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' or t1.Data_Type='NCHAR' or t1.Data_type='Clob' or t1.DATA_TYPE='Blob')
   ORDER BY t1.Table_Name, t1.Column_ID;
BEGIN

   FOR i IN cur LOOP
    v_sql := i.str; 

    EXECUTE IMMEDIATE v_sql INTO v_tb_COLUMN, v_cnt;
    IF v_cnt > 0 THEN
      dbms_output.put_line('表:'||substr(v_tb_column,1,instr(v_tb_column,'.',1,1)-1)||' 列:'||substr(v_tb_column,instr(v_tb_column,'.',1,1)+1)||
                           '有 '||to_char(v_cnt)|| '条记录含有字串"' || v_key || '" ');
    END IF;
  END LOOP;

  EXCEPTION WHEN OTHERS THEN
  Begin

    dbms_output.put_line(v_sql);
    dbms_output.put_line(v_tb_column);
  END;

end A_YANDANCHAN; -- 注意名称要和上述的名称统一

2、在Procedures找到新建的A_YANDANCHAN,右击,选择Test

 

 

3、选择DBMS Output,执行

 

标签:Name,column,列名,t1,表及,oracle,Table,tb,name
From: https://www.cnblogs.com/ydc2023/p/17000891.html

相关文章

  • oracle常用命令
    1#登录2su-oracle3sqlplus"/assysdba"4#查询数据库版本5SQL>select*fromv$version;6#查询当前数据库进程的连接数7SQL>selectcount(*)fro......
  • Oracle 19c RAC 自动应用RU补丁简明版
    环境:OracleRAC(GI19.3+DB19.3)本文应用补丁信息,19.16RU:p34130714_190000_Linux-x86-64.zip本文主要演示使用opatchauto自动应用补丁的过程。1.更新OPatch......
  • [数据结构]单向链表及其基本操作(C语言)
    单向链表什么是单向链表链表是一种物理储存单元上非连续、非顺序的储存结构。它由一系列结点(链表中每一个元素称为结点)组成,结点可动态生成。每个结点包括两个部分:一个是......
  • Oracle19C windows安装部署
    1、解压安装包WINDOWS.X64_193000_db_home.zip2、双机setup.exe文件。服务器先决条件检查点击关闭。数据库监听配置数据库初始化设置......
  • CloudCanal实战-五分钟搞定Oracle到StarRocks数据迁移与同步
    简述CloudCanal当前最新版本已经支持源端Oracle、SqlServer等主流传统数据库作为源端迁移同步数据到StarRocks来构建实时数仓。本文简要介绍如何快速构建一条Oracle->Star......
  • 不止Oracle 读书笔记
    Oracle由实例和数据库组成,上半部的直角方框为实例instance,下半部的圆角方框为数据库Database。实例是由一个共享内存区SGA(SystemGlobalArea)和一系列后台进程组成的,其中......
  • Oracle函数入坑指南
     一、oracle函数概述Oracle 提供一系列用于执行特定操作的函数SQL函数带有一个或多个参数并返回一个值以下是SQL函数的分类: 二、单行函数单行函数对于从表中......
  • oracle修改表结构
    --添加表字段altertablepublic_memoaddoperate_uservarchar2(10);public_memo为表的名字,operate_user为表中字段的名称--修改表字段结构altertablepubl......
  • python 导出oracle表结构到word文档
    安装oracleclienthttps://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html解压后把这几个文件放到python的site-package里面安......
  • oracle 2个数组列,剔除数组重复的数据。
    一、下面这样不规则的,数据如何剔除掉。循环筛选replace替换掉。序号正常时间剔除时间1   2022-12-19,2......