Risposte:
utilizzare pgAdmin o utilizzare pg_proc per ottenere l'origine delle procedure memorizzate. pgAdmin fa lo stesso.
\df+ <function_name>in psql .
\x meta comando psql prima di visualizzare la definizione della funzione. \xè utile anche per visualizzare i risultati delle query contenenti record con stringhe lunghe.
\ef <function_name>in psql. Darà l'intera funzione con testo modificabile.
; <enter>dopo per eseguire il buffer.
ERROR: more than one function named
SELECT prosrc FROM pg_proc WHERE proname = 'function_name';
Questo dice al gestore della funzione come invocare la funzione. Potrebbe essere il codice sorgente effettivo della funzione per le lingue interpretate, un simbolo di collegamento, un nome di file o qualsiasi altra cosa, a seconda della lingua di implementazione / convenzione di chiamata
psql. Notare che i nomi delle funzioni sembrano essere abbassati.
SELECT proname, prosrc, proargnames FROM pg_proc WHERE proname like '%func_name%'. Almeno a pagina 9.6. È possibile ottenere il codice numerico del tipo tramite proprietà proargtypes, ma è necessario unirsi a un'altra tabella per ottenerlo come nomi.
Utilizzare \dfper elencare tutte le stored procedure in Postgres.
Se qualcuno si chiede come eseguire rapidamente query sulle tabelle del catalogo e utilizzare la pg_get_functiondef()funzione, ecco la query di esempio:
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>'
pg_get_functiondef(p.oid) ilike '%indicator_loss%'
Puoi anche ottenere da phpPgAdmin se lo hai configurato nel tuo sistema,
Passaggio 1: seleziona il tuo database
Passaggio 2: fare clic sul pulsante Trova
Passaggio 3: modificare l'opzione di ricerca in funzioni, quindi fare clic su Trova.
Otterrai l'elenco delle funzioni definite. Puoi anche cercare le funzioni per nome, spero che questa risposta possa aiutare gli altri.
Per vedere il codice completo (query) scritto nella stored procedure / funzioni, utilizzare il comando seguente:
sp_helptext procedure/function_name
per il nome della funzione e il nome della procedura non aggiungere il prefisso "dbo". o "sys.".
non aggiungere parentesi alla fine della procedura o del nome della funzione e non passare i parametri.
utilizzare la parola chiave sp_helptext e quindi passare il nome della procedura / funzione.
utilizzare il comando seguente per vedere il codice completo scritto per la procedura:
sp_helptext ProcedureName
usa il comando seguente per vedere il codice completo scritto per la funzione:
sp_helptext FunctionName
sp_helptextin postgresql.
Normalmente si utilizza un'applicazione di gestione DB come pgAdmin , si passa all'oggetto a cui si è interessati e si fa clic con il pulsante destro del mouse su "script come crea" o simile.
Stai provando a farlo ... senza un'app di gestione?