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
;
相关推荐
stereohomology3 分钟前
AI解读:某IM软件本地数据库密钥提取与解密
数据库·攻防·加密解密·数字平权
zzzll11116 分钟前
大模型技术原理与应用实践
java·数据库·人工智能
倔强的石头_7 分钟前
数据库迁移工具从单机作业走向云端协同
数据库
yours_Gabriel10 分钟前
【一】数据库基础:SQL语句、函数、约束、多表查询、事务
数据库·sql·oracle
Wang's Blog15 分钟前
PostgreSQL笔记58: 性能监控工具全景——从内核指标到操作系统诊断
数据库·笔记·postgresql
智购科技智能售货柜9 小时前
2026自动售货机整机可靠性测试:从高低温交变到EMC电磁兼容的认证工程实践~YH
运维·服务器·数据库·人工智能·物联网
ltl9 小时前
RocksDB 架构演进:相对 LevelDB 的 diff 地图
数据库
ltl9 小时前
存储读取性能优化:索引、Bloom Filter 与读放大
数据库
xier_ran13 小时前
【infra之路】GPU 存储层次总结:L1 / L2 / HBM
java·网络·数据库