sql >> Databasteknik >  >> RDS >> PostgreSQL

3 sätt att lista alla lagrade procedurer i en PostgreSQL-databas

Här är tre alternativ för att lista ut alla lagrade procedurer i en Postgres-databas.

information_schema.routines Visa

Denna vy innehåller alla funktioner och procedurer i den aktuella databasen som den aktuella användaren har tillgång till (genom att vara ägare eller ha någon behörighet).

Här är ett exempel på hur du returnerar en lista över lagrade procedurer:

SELECT
    routine_schema,
    routine_name
FROM 
    information_schema.routines
WHERE 
    routine_type = 'PROCEDURE';

Ta gärna med fler kolumner om det behövs. Du kan få procedurens definition med routine_definition kolumn.

pg_proc Katalog

pg_catalog.pg_proc katalogen lagrar information om funktioner, procedurer, aggregerade funktioner och fönsterfunktioner.

Vi kan ansluta till detta med pg_catalog.pg_namespace katalog för att filtrera resultaten till endast procedurer med public namnutrymme:

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';

Vi filtrerade till en prokind av p för att begränsa resultaten till lagrade procedurer.

De möjliga värdena är f för en normal funktion, p för en procedur, a för en aggregerad funktion, eller w för en fönsterfunktion.

Du kan lägga till p.prosrc kolumn för att få procedurens definition. Eller så kan du skicka p.oid kolumnen till pg_get_functiondef() fungera. Denna funktion skapar en CREATE OR REPLACE PROCEDURE uttalande för den lagrade proceduren.

\df Kommando

När vi använder psql kan vi använda \df kommando:

\df

Som standard returnerar detta endast användarskapade objekt. Du kan alternativt tillhandahålla ett mönster eller S modifierare för att inkludera systemobjekt.

Här är ett exempel på att tillhandahålla ett mönster:

\df *album*

Det exemplet begränsar resultaten till bara de funktionerna/procedurerna med texten album i deras namn.

Observera att detta kommando också returnerar funktioner. Rutintypen (t.ex. func , proc ) listas i en type kolumn i utgången.


  1. Återställa en postgres backup-fil med kommandoraden?

  2. Navigera i SQL Server-felloggar

  3. Hitta det vanligaste värdet i SQL-kolumnen

  4. Hämta veckostartdatum och veckoslutdatum från veckonummer