【发布时间】:2011-04-01 06:59:49
【问题描述】:
您如何查看存储过程/函数?
假设我有一个没有原始定义的旧函数 - 我想看看它在 pg/psql 中做了什么,但我似乎想不出办法。
使用 Postgres 版本 8.4.1
【问题讨论】:
标签: postgresql stored-procedures
您如何查看存储过程/函数?
假设我有一个没有原始定义的旧函数 - 我想看看它在 pg/psql 中做了什么,但我似乎想不出办法。
使用 Postgres 版本 8.4.1
【问题讨论】:
标签: postgresql stored-procedures
\df+ <function_name> 在psql。
【讨论】:
\x psql meta-command。 \x 对于查看包含长字符串记录的查询结果也很有用。
\ef <function_name> 在 psql 中。它将为整个功能提供可编辑的文本。
【讨论】:
; <enter>。
ERROR: more than one function named
(type)的needle函数没有错误
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 上。您可以通过属性proargtypes 获取类型的数字代码,但您需要与其他一些表连接才能将其作为名称。
使用 pgAdmin 或使用 pg_proc 获取存储过程的源代码。 pgAdmin 也是如此。
【讨论】:
使用\df 列出Postgres 中的所有存储过程。
【讨论】:
如果有人想知道如何快速查询目录表并使用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%'中查找具有特定单词的procs
如果你在系统中配置了phpPgAdmin,也可以通过phpPgAdmin获取,
第 1 步:选择您的数据库
第 2 步:点击查找按钮
第 3 步:将搜索选项更改为函数,然后点击查找。
您将获得已定义函数的列表。您也可以按名称搜索函数,希望这个答案对其他人有所帮助。
【讨论】:
由于PostgreSQL 9.1 \sf 可用。
【讨论】:
通常来说,您会使用像pgAdmin 这样的数据库管理器应用程序,浏览到您感兴趣的对象,然后右键单击您的方式以“创建脚本”或类似的方式。
您是否尝试在没有管理应用的情况下执行此操作?
【讨论】:
要查看用存储过程/函数编写的完整代码(查询),请使用以下命令:
sp_helptext procedure/function_name
对于函数名和过程名,不要添加前缀“dbo”。或“系统”。
不要在过程或函数名称的末尾添加括号,也不要传递参数。
使用 sp_helptext 关键字,然后只传递过程/函数名称。
使用以下命令查看为过程编写的完整代码:
sp_helptext ProcedureName
使用以下命令查看为函数编写的完整代码:
sp_helptext FunctionName
【讨论】:
sp_helptext。