暂无图片
如何查看某个存储过程中,涉及到那些对象,例如表,索引等等
我来答
分享
暂无图片 匿名用户
如何查看某个存储过程中,涉及到那些对象,例如表,索引等等

如何查看某个存储过程中,涉及到那些对象,例如表,索引等等

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
军唐海

如果是oracle数据库,可以查询DBA_DEPENDENCIES

暂无图片 评论
暂无图片 有用 0
打赏 0
彭冲

版本14开始,如果使用begin atomic语法创建新形式的函数或存储过程,则可以从pg_depend中查到依赖关系。

Demo如下:

CREATE TABLE test(id int,info text);
复制

创建依赖test表的函数f_test2

CREATE OR REPLACE FUNCTION public.f_test2()
 RETURNS character varying
  LANGUAGE sql
begin atomic;
    select info from test limit 1;
end;
复制

下面的语句可以查询函数f_test2依赖的表对象

SELECT refobjid::regclass,refobjsubid 
  FROM pg_depend 
 WHERE objid='f_test2'::regproc 
   AND refclassid='pg_class'::regclass;
复制

image.png

refobjsubid字段是依赖test表的具体第几个列。

暂无图片 评论
暂无图片 有用 1
打赏 0
严少安
2023-03-12
https://www.postgresql.org/docs/15/sql-createprocedure.html
回答交流
Markdown


请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏