una tutorial sintaxis procedimientos principales para funciones funcion español ejemplos ejecutar crear almacenados postgresql plpgsql

tutorial - sintaxis para crear una funcion en postgresql



¿Cómo puedo ejecutar el código pl/pgsql sin crear una función? (3)

Con SQL Server, puedo ejecutar código código T-SQL ad hoc con lógica de procedimiento completa a través de SQL Server Management Studio o cualquier otro cliente. Empecé a trabajar con PostgreSQL y encontré una pequeña diferencia en que PGSQL requiere que cualquier lógica se incruste en una función.

¿Hay alguna manera de ejecutar código PL / PGSQL sin crear una función ejecutando?


Luché para que esto funcionara porque es bastante estricto sobre cómo agregar puntos y coma en los lugares correctos. Pero una vez que te acostumbras, funciona bien. Además de la imposibilidad de devolver los registros, por supuesto, puedes subir avisos y excepciones y hacer otras soluciones como usar tablas temporales como lo señaló @ErwinBrandstetter en un comentario anterior.

p.ej:

DO $$ BEGIN IF EXISTS(SELECT ''any rows?'' FROM {your_table} WHERE {your_column} = ''blah'') THEN RAISE NOTICE ''record exists''; ELSE RAISE EXCEPTION ''record does not exist''; END IF; DROP TABLE IF EXISTS foo; CREATE TEMP TABLE foo AS SELECT ''bar''::character varying(5) as baz; END $$; SELECT * FROM foo;


No aún no. La versión 9.0 (todavía alfa) tendrá esta opción (do), debes esperar hasta que se lance.


Postgres 9

DO $$ -- declare BEGIN /* pl/pgsql here */ END $$;