Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 获取函数DDL命令_Postgresql_Stored Procedures_Postgresql 9.2 - Fatal编程技术网

Postgresql 获取函数DDL命令

Postgresql 获取函数DDL命令,postgresql,stored-procedures,postgresql-9.2,Postgresql,Stored Procedures,Postgresql 9.2,为了进行版本控制,我需要获取数据库中每个函数的DDL。是查询,但它仅适用于公共架构中的函数。当我试图使用它来创建公共模式中存在的函数并匹配模式时,我得到一个错误,即子查询返回的行太多 通过使用此查询检查pg_proc中的所有值: select * from pg_proc where proname = 'match_group_1_3_2'; 只有更改的值才是空间: 如何区分两个(或多个)功能?如果它们在同一个模式中但具有不同的参数,如何区分它们?(通过过载) 由于性能问题,我需要使用本机

为了进行版本控制,我需要获取数据库中每个函数的DDL。是查询,但它仅适用于公共架构中的函数。当我试图使用它来创建公共模式中存在的函数并匹配模式时,我得到一个错误,即子查询返回的行太多

通过使用此查询检查pg_proc中的所有值:

select * from pg_proc where proname = 'match_group_1_3_2';
只有更改的值才是空间:

如何区分两个(或多个)功能?如果它们在同一个模式中但具有不同的参数,如何区分它们?(通过过载)

由于性能问题,我需要使用本机postgres目录,而不是ANSI类型。

还有更多信息可以提供给您。
您可以从系统表中获取架构名称:

这应该可以在数据库中的任何模式中找到函数。

还有更多信息可以提供给您。
您可以从系统表中获取架构名称:


这应该可以在数据库中的任何模式中找到函数。

这正是我要查找的。谢谢我在探索schema.routines的信息,但没有标题和参数部分。哈哈,这正是我要找的。谢谢我在探索schema.routines的信息,但没有标题和参数部分。哈哈。
SELECT n.nspname AS schema_name
      ,p.proname AS function_name
      ,pg_get_functiondef(p.oid) AS func_def
      ,pg_get_function_arguments(p.oid) AS args
      ,pg_get_function_result(p.oid) AS result
FROM   pg_proc p
JOIN   pg_namespace n ON n.oid = p.pronamespace
WHERE  p.proname ILIKE '%match_group_1_3_2%';