Как взять всю базу данных Сценарии процедуры магазина - PullRequest
0 голосов
/ 06 ноября 2018

Как использовать полные сценарии для процедур хранилища базы данных так же, как в MS SQL 2008 R2 Generate Script. Нужна помощь.

1 Ответ

0 голосов
/ 06 ноября 2018

Следующий запрос вернет полные операторы DDL для каждой функции, которой владеет текущий пользователь в общедоступной схеме:

select pg_get_functiondef(p.oid)||';'
from pg_proc p
  join pg_namespace n on n.oid = p.pronamespace
  join pg_user u on u.usesysid = p.proowner
where n.nspname = 'public'
  and p.prokind <> 'a'
  and u.usename = current_user;

prokind <> 'a' необходимо, потому что pg_get_functiondef() не работает с пользовательскими агрегатными функциями.

Если вам нужны функции из другой схемы или владельца, просто измените условия where соответствующим образом.

Вы можете буферизовать вывод в файл, чтобы получить скрипт SQL, содержащий все функции.

...