it-swarm.com.de

wie wird der vollständige Code für gespeicherte Prozeduren angezeigt?

Wie sehen Sie eine gespeicherte Prozedur/Funktion?

Angenommen, ich habe eine alte Funktion ohne die ursprüngliche Definition - ich möchte sehen, was in pg/psql gemacht wird, aber ich kann keinen Weg finden, dies zu tun.

verwenden der Postgres-Version 8.4.1

90
darren

verwenden Sie pgAdmin oder verwenden Sie pg_proc , um die Quelle Ihrer gespeicherten Prozeduren abzurufen. pgAdmin macht dasselbe.

21
Frank Heikens

\df+ <function_name> in psql .

201
Milen A. Radev

\ef <function_name> in psql. Es wird die gesamte Funktion mit editierbarem Text erhalten.

116
Asha Koshti
SELECT prosrc FROM pg_proc WHERE proname = 'function_name';

Dies teilt dem Funktionshandler mit, wie die Funktion aufgerufen werden soll. Dies kann der tatsächliche Quellcode der Funktion für interpretierte Sprachen, ein Verknüpfungssymbol, ein Dateiname oder einfach alles andere sein, abhängig von der Implementierungssprache/Aufrufkonvention

44
Maxim

Verwenden Sie \df, um alle in Postgres gespeicherten Prozeduren aufzulisten.

9
Puneet Purohit

Wenn sich jemand fragt, wie man schnell Katalogtabellen abfragt und die Funktion pg_get_functiondef() verwendet, ist hier die Beispielabfrage:

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>'
6
msciwoj

Normalerweise verwenden Sie eine DB-Manager-Anwendung wie pgAdmin , navigieren Sie zu dem gewünschten Objekt und klicken Sie mit der rechten Maustaste auf "Skript als Erstellen" oder ähnliches.

Versuchen Sie das zu tun ... ohne eine Management-App?

0
annakata

Sie können auch von phpPgAdmin abrufen, wenn Sie es in Ihrem System konfiguriert haben.

Schritt 1: Wählen Sie Ihre Datenbank aus

Schritt 2: Klicken Sie auf die Schaltfläche Suchen

Schritt 3: Ändern Sie die Suchoption in Funktionen und klicken Sie auf Suchen.

Sie erhalten eine Liste der definierten Funktionen. Sie können Funktionen auch nach Namen suchen. Ich hoffe, diese Antwort hilft anderen.

0