是否有可能找到PostgreSQL函数之间的依赖关系?
发布时间:2020-12-13 15:51:46 所属栏目:百科 来源:网络整理
导读:我正在使用PostgreSQL 9.2.10 假设您有2个PostgreSQL函数,’called_function’和’caller_function’,第二个调用第一个函数.究竟: CREATE FUNCTION called_function () RETURNS varchar AS$BODY$BEGIN RETURN 'something';END;CREATE FUNCTION caller_funct
我正在使用PostgreSQL 9.2.10
假设您有2个PostgreSQL函数,’called_function’和’caller_function’,第二个调用第一个函数.究竟: CREATE FUNCTION called_function () RETURNS varchar AS $BODY$ BEGIN RETURN 'something'; END; CREATE FUNCTION caller_function () RETURNS varchar AS $BODY$ BEGIN RETURN called_function (); END; 现在,使用SQL并只知道函数名称,我想知道’caller_function’是否调用了其他函数.或者,如果某个其他函数调用了’called_function’.可能吗? 我试图获取函数的OID(假设它是’123′)然后我查看了pg_depend表: SELECT * FROM pg_catalog.pg_depend dep WHERE dep.objid = 123 OR dep.objsubid = 123 OR dep.refobjid = 123 OR dep.refobjsubid = 123 OR dep.refobjsubid = 123; 但它只找到pg_language和pg_namespace依赖项.而已. 解决方法
以表格pg_proc为例:
select nspname,proname,prosrc from pg_proc join pg_namespace nsp on (pronamespace=nsp.oid) where prosrc like '%called_function%' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |