Answers:
使用pgAdmin或pg_proc获取存储过程的源。pgAdmin做同样的事情。
\df+ <function_name>
在psql中。
\ef <function_name>
在psql中。它将为整个功能提供可编辑的文本。
;
<enter>
在执行缓冲区之后键入。
ERROR: more than one function named
SELECT prosrc FROM pg_proc WHERE proname = 'function_name';
这告诉函数处理程序如何调用函数。根据实现语言/调用约定,它可能是解释语言功能的实际源代码,链接符号,文件名或几乎所有其他内容。
psql
。请注意,函数名称似乎是小写的。
SELECT proname, prosrc, proargnames FROM pg_proc WHERE proname like '%func_name%'
。至少在Pg 9.6上如此。您可以通过property获得类型的数字代码proargtypes
,但是您需要与其他表连接才能将其作为名称。
如果有人想知道如何快速查询目录表并利用该pg_get_functiondef()
功能,请参见以下示例查询:
SELECT n.nspname AS schema
,proname AS fname
,proargnames AS args
,t.typname AS return_type
,d.description
,pg_get_functiondef(p.oid) as definition
-- ,CASE WHEN NOT p.proisagg THEN pg_get_functiondef(p.oid)
-- ELSE 'pg_get_functiondef() can''t be used with aggregate functions'
-- END as definition
FROM pg_proc p
JOIN pg_type t
ON p.prorettype = t.oid
LEFT OUTER
JOIN pg_description d
ON p.oid = d.objoid
LEFT OUTER
JOIN pg_namespace n
ON n.oid = p.pronamespace
WHERE NOT p.proisagg
AND n.nspname~'<$SCHEMA_NAME_PATTERN>'
AND proname~'<$FUNCTION_NAME_PATTERN>'
pg_get_functiondef(p.oid) ilike '%indicator_loss%'
如果您在系统中进行了配置,也可以通过phpPgAdmin获取它,
步骤1:选择数据库
第2步:点击查找按钮
步骤3:将搜索选项更改为功能,然后单击查找。
您将获得已定义函数的列表。您还可以按名称搜索函数,希望此答案对其他人有所帮助。
要查看用存储过程/函数编写的完整代码(查询),请在命令下方使用:
sp_helptext procedure/function_name
对于函数名和过程名,请不要添加前缀“ dbo”。或“ sys”。
不要在过程或函数名称的末尾添加方括号,也不要传递参数。
使用sp_helptext关键字,然后仅传递过程/函数名称。
使用以下命令查看为过程编写的完整代码:
sp_helptext ProcedureName
使用以下命令查看为该功能编写的完整代码:
sp_helptext FunctionName
sp_helptext
在postgresql中没有。