PostgreSQL-视图-03-查询对象依赖关系视图-dba_dependencies

PostgreSQL查询对象依赖关系视图

sql 复制代码
-- PostgreSQL查询对象依赖关系视图

drop view if exists tzq.dba_dependencies;
create view tzq.dba_dependencies as 
with source_obj as (
  select sp.oid,sp.proname
        ,unnest(
           string_to_array(
             regexp_replace(
                regexp_replace(lower(sp.prosrc),'--.*?\n'::text, ''::text, 'g'::text)
                ,'\W+'::text, ' '::text, 'g'::text)
             , ' '::text)
         )
         as split_text
        ,sp.proowner::regrole::character varying as schema_name
        ,sp.proowner
    from pg_proc sp
   where (sp.proowner in (select pg_user.usesysid 
                            from pg_user
                           where pg_user.usename ~~ 'tzq%'::text or 
                                 pg_user.usename = 'jdbc_etl_in'::name or 
                                 pg_user.usename = 'ewf'::name
                          ))
)
,all_depend as (
  select t.schema_name as owner
        ,t.proname as name
        ,'procedure'::text as type
        ,p.proowner::regrole::character varying as referenced_owner
        ,p.proname as referenced_name
        ,'procedure'::text as referenced_type
        ,p.proowner
    from source_obj t
    join pg_proc p
      on t.split_text = p.proname
     and p.proowner <> 10::oid
  union all
  select t.schema_name as owner
        ,t.proname as name
        ,'procedure'::text as type
        ,p.schemaname as referenced_owner
        ,p.tablename as referenced_name
        ,'table'::text as referenced_type
        ,t.proowner
    from source_obj t
    join pg_tables p
      on t.split_text = p.tablename
     and (p.schemaname ~~ 'tzq%'::text or 
          p.schemaname = 'jdbc_etl_in'::name or 
          p.schemaname = 'ewf'::name)
)
select distinct
       owner
      ,name
      ,type
      ,referenced_owner
      ,referenced_name
      ,referenced_type
  from all_depend
;
相关推荐
咕噜企业分发小米1 天前
阿里云与华为云基因测序数据同步的日志内容中,哪些字段对于故障排查最为关键?
数据库·阿里云·华为云
阿杰 AJie1 天前
MyBatis-Plus 比较运算符
java·数据库·mybatis
码农幻想梦1 天前
实验六 AOP,JdbcTemplate及声明式事务
java·开发语言·数据库
砚边数影1 天前
金仓数据库KDMS助力某能源集团完成20TB时序数据智能迁移,效率提升显著、年省运维成本超千万元
运维·数据库·能源·时序数据库·数据库平替用金仓·金仓数据库·kdms
齐 飞1 天前
springboot整合shardingsphere-jdbc5.1.1-按月分表
数据库·spring boot
勇气要爆发1 天前
向量数据库 Milvus 极速入门:从 Docker 部署到 Python 增删改查实战
数据库·docker·milvus
xuefuhe1 天前
如何连接到postgresql数据库
数据库
好好学操作系统1 天前
notion+excel自动创建表格| 了解了notion api
数据库·python·oracle·excel·notion
爱吃山竹的大肚肚1 天前
达梦(DM)数据库中设置表空间
java·数据库·sql·mysql·spring·spring cloud·oracle
启明真纳1 天前
MySQL基本概念
数据库·mysql