¿Cómo ve un procedimiento / función almacenados?
Digamos que tengo una función antigua sin la definición original; quiero ver qué está haciendo en pg / psql pero parece que no puedo encontrar la manera de hacerlo.
usando Postgres versión 8.4.1
postgresql
stored-procedures
darren
fuente
fuente
\df+ <function_name>
en psql .fuente
\x
metacomando psql antes de mostrar la definición de la función.\x
también es útil para ver resultados de consultas que contienen registros con cadenas largas.\ef <function_name>
en psql. Dará toda la función con texto editable.fuente
;
<enter>
after para ejecutar el búfer.ERROR: more than one function named
Esto le dice al controlador de la función cómo invocar la función. Puede ser el código fuente real de la función para los idiomas interpretados, un símbolo de enlace, un nombre de archivo o casi cualquier otra cosa, dependiendo del idioma de implementación / convención de llamada
fuente
psql
. Tenga en cuenta que los nombres de las funciones parecen estar reducidos.SELECT proname, prosrc, proargnames FROM pg_proc WHERE proname like '%func_name%'
. Esto al menos en la página 9.6. Puede obtener el código numérico del tipo a través de la propiedadproargtypes
, pero necesitaría unirse con alguna otra tabla para obtener esto como nombres.Úselo
\df
para listar todos los procedimientos almacenados en Postgres.fuente
Si alguien se pregunta cómo consultar rápidamente las tablas del catálogo y hacer uso de la
pg_get_functiondef()
función, aquí está la consulta de muestra:fuente
pg_get_functiondef(p.oid) ilike '%indicator_loss%'
También puede obtener phpPgAdmin si está configurado en su sistema,
Paso 1: seleccione su base de datos
Paso 2: haga clic en el botón Buscar
Paso 3: Cambie la opción de búsqueda a funciones y luego haga clic en Buscar.
Obtendrá la lista de funciones definidas. También puede buscar funciones por nombre, espero que esta respuesta ayude a otros.
fuente
Para ver el código completo (consulta) escrito en funciones / procedimientos almacenados, use el siguiente comando:
para el nombre de la función y el nombre del procedimiento, no agregue el prefijo 'dbo'. o 'sys.'.
no agregue corchetes al final del procedimiento o el nombre de la función y tampoco pase los parámetros.
use la palabra clave sp_helptext y luego simplemente pase el nombre del procedimiento / función.
use el siguiente comando para ver el código completo escrito para el procedimiento:
use el siguiente comando para ver el código completo escrito para la función:
fuente
sp_helptext
en postgresql.Normalmente, usaría una aplicación de administrador de base de datos como pgAdmin , busque el objeto que le interese y haga clic con el botón derecho en "script as create" o similar.
¿Estás intentando hacer esto ... sin una aplicación de gestión?
fuente