2条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
匿名用户如何查看某个存储过程中,涉及到那些对象,例如表,索引等等
如果是oracle数据库,可以查询DBA_DEPENDENCIES
评论
有用 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;

refobjsubid字段是依赖test表的具体第几个列。
评论
有用 1
墨值悬赏