Wie sehen Sie eine gespeicherte Prozedur / Funktion?
Angenommen, ich habe eine alte Funktion ohne die ursprüngliche Definition - ich möchte sehen, was sie in pg / psql tut, aber ich kann anscheinend keinen Weg finden, dies zu tun.
mit Postgres Version 8.4.1
postgresql
stored-procedures
Darren
quelle
quelle
\df+ <function_name>
in psql .quelle
\x
Metabefehl psql verwenden, bevor Sie die Funktionsdefinition anzeigen.\x
ist auch nützlich, um Abfrageergebnisse anzuzeigen, die Datensätze mit langen Zeichenfolgen enthalten.\ef <function_name>
in psql. Es gibt die gesamte Funktion mit bearbeitbarem Text.quelle
;
<enter>
nachher einzugeben, um den Puffer auszuführen.ERROR: more than one function named
Dies teilt dem Funktionshandler mit, wie die Funktion aufgerufen werden soll. Je nach Implementierungssprache / Aufrufkonvention kann dies der eigentliche Quellcode der Funktion für interpretierte Sprachen, ein Verknüpfungssymbol, ein Dateiname oder fast alles andere sein
quelle
psql
. Beachten Sie, dass Funktionsnamen scheinbar in Großbuchstaben geschrieben sind.SELECT proname, prosrc, proargnames FROM pg_proc WHERE proname like '%func_name%'
. Dies zumindest auf Seite 9.6. Sie können den numerischen Code des Typs über die Eigenschaftproargtypes
abrufen, müssen ihn jedoch mit einer anderen Tabelle verknüpfen, um diesen als Namen zu erhalten.Verwenden Sie
\df
diese Option, um alle gespeicherten Prozeduren in Postgres aufzulisten.quelle
Wenn sich jemand fragt, wie man Katalogtabellen schnell abfragt und die
pg_get_functiondef()
Funktion nutzt, ist hier die Beispielabfrage:quelle
pg_get_functiondef(p.oid) ilike '%indicator_loss%'
Sie können auch über 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 dann auf Suchen.
Sie erhalten die Liste der definierten Funktionen. Sie können Funktionen auch nach Namen suchen, hoffen, dass diese Antwort anderen hilft.
quelle
Verwenden Sie den folgenden Befehl, um den vollständigen Code (Abfrage) anzuzeigen, der in gespeicherte Prozeduren / Funktionen geschrieben wurde:
Fügen Sie für den Funktionsnamen und den Prozedurnamen nicht das Präfix 'dbo' hinzu. oder 'sys.'.
Fügen Sie am Ende der Prozedur oder des Funktionsnamens keine Klammern hinzu und übergeben Sie auch nicht die Parameter.
Verwenden Sie das Schlüsselwort sp_helptext und übergeben Sie dann einfach den Prozedur- / Funktionsnamen.
Verwenden Sie den folgenden Befehl, um den vollständigen Code für die Prozedur anzuzeigen:
Verwenden Sie den folgenden Befehl, um den vollständigen Code für die Funktion anzuzeigen:
quelle
sp_helptext
in postgresql.Normalerweise verwenden Sie eine DB-Manager-Anwendung wie pgAdmin , zu dem Objekt, an dem Sie interessiert sind, und klicken mit der rechten auf "Skript als erstellen" oder ähnliches.
Versuchen Sie dies zu tun ... ohne eine Management-App?
quelle