Aqui estão três opções para listar todos os procedimentos armazenados em um banco de dados Postgres.
O information_schema.routines Visualizar
Esta visão contém todas as funções e procedimentos no banco de dados atual que o usuário atual tem acesso (por ser o proprietário ou ter algum privilégio).
Aqui está um exemplo de retorno de uma lista de procedimentos armazenados:
SELECT
routine_schema,
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'PROCEDURE'; Sinta-se à vontade para incluir mais colunas, se necessário. Você pode obter a definição do procedimento com o
routine_definition coluna. O pg_proc Catálogo
O
pg_catalog.pg_proc catalog armazena informações sobre funções, procedimentos, funções agregadas e funções de janela. Podemos juntar isso com o
pg_catalog.pg_namespace catalog para filtrar os resultados apenas para procedimentos com o public namespace:SELECT
n.nspname,
p.proname
FROM
pg_catalog.pg_namespace n
JOIN
pg_catalog.pg_proc p ON
p.pronamespace = n.oid
WHERE
p.prokind = 'p'
AND
n.nspname = 'public'; Filtramos para um
prokind de p para limitar os resultados a procedimentos armazenados. Os valores possíveis são
f para uma função normal, p para um procedimento, a para uma função agregada, ou w para uma função de janela. Você pode adicionar o
p.prosrc coluna para obter a definição do procedimento. Ou você pode passar o p.oid coluna para o pg_get_functiondef() função. Esta função produzirá um CREATE OR REPLACE PROCEDURE instrução para o procedimento armazenado. O \df Comando
Ao usar o psql, podemos usar o
\df comando:\df Por padrão, isso retorna apenas objetos criados pelo usuário. Você também pode fornecer um padrão ou o
S modificador para incluir objetos do sistema. Aqui está um exemplo de como fornecer um padrão:
\df *album* Esse exemplo restringe os resultados apenas às funções/procedimentos com o texto
album em seu nome. Observe que esse comando também retorna funções. O tipo de rotina (por exemplo,
func , proc ) está listado em um type coluna na saída.