在SQL Server中,我可以验证给定存储过程中是否存在特定参数,如下所示:
SELECT [name]
FROM sys.parameters
WHERE object_id = object_id('MyStoredProc')
AND [name]='@paramenter_im_checking'
PostgreSQL中是否有等效项?
答案 0 :(得分:1)
您可以在系统目录pg_proc
中查询函数或过程的命名参数:
SELECT 'parameter_name' =ANY (proargnames)
FROM pg_catalog.pg_proc
WHERE proname = 'function_name';
这将返回TRUE
或FALSE
,具体取决于函数或过程是否具有该名称的参数。
答案 1 :(得分:0)
原来,如果同一功能名称存在于多个模式中,那么我还需要检查模式。
这是更新的查询:
SELECT 'parameter_name' = ANY (proargnames)
FROM pg_catalog.pg_proc p INNER JOIN pg_catalog.pg_namespace n
ON n.oid = p.pronamespace
WHERE n.nspname='schema_name'
AND proname = 'function_name';