Quire

PL/PgSQL

From Quire, the open reference··1 min read
PL/pgSQL
PL/pgSQL
Desarrollador(es)
Jan Wieck
www.postgresql.org/docs/current/static/plpgsql.html
Información general
Apareció en30 de octubre de 1998
Influido porPL/SQL, Ada
LicenciaPostgreSQL License

PL/pgSQL (Procedural Language/PostgreSQL Structured Query Language) es un lenguaje imperativo provisto por el gestor de base de datos PostgreSQL. Implementado por Jan Wieck, PL/pgSQL apareció por primera vez con PostgreSQL 6.4, publicado el 30 de octubre de 1998.[1]​

Permite ejecutar comandos SQL mediante un lenguaje de sentencias imperativas y uso de funciones, dando mucho más control automático que las sentencias SQL básicas.

Desde PL/pgSQL se pueden realizar cálculos complejos y crear nuevos tipos de datos de usuario. Como un verdadero lenguaje de programación, dispone de estructuras de control repetitivas y condicionales, además de la posibilidad de creación de funciones que pueden ser llamadas en sentencias SQL normales o ejecutadas en eventos de tipo disparador (trigger).

Una de las principales ventajas de ejecutar programación en el servidor de base de datos es que las consultas y el resultado no tienen que ser transportadas entre el cliente y el servidor, ya que los datos residen en el propio servidor. Además, el gestor de base de datos puede planificar optimizaciones en la ejecución de la búsqueda y actualización de datos.

Las funciones escritas en PL/pgSQL aceptan argumentos y pueden devolver valores de tipo básico o de tipo complejo (por ejemplo, registros, vectores, conjuntos o incluso tablas), permitiéndose tipificación polimórfica para funciones abstractas o genéricas (referencia a variables de tipo objeto).

Ejemplo de código PL/pgSQL#edit

CREATE OR REPLACE FUNCTION llamada_no_interesa(integer) RETURNS integer AS '
DECLARE 
  _llamada_id ALIAS FOR $1;
  _contacto_id integer;

BEGIN

  -- buscar el contacto relacionado
  SELECT _contacto_id INTO _contacto_id FROM llamadas WHERE id = _llamada_id;

  -- actualizar atendida en llamadas
  UPDATE llamadas SET atendida = true WHERE id = _llamada_id;

  -- actualizar no_interesa en contactos
  UPDATE contactos SET no_interesado = true WHERE id = _contacto_id;

  RETURN _contacto_id;

END;
'

Referencias#edit

Enlaces externos#edit

  • Datos: Q2044345

References#

This article is mirrored from “PL/PgSQL” on Español Wikipedia, revision 165633906, written by Wikipedia's contributors and licensed CC BY-SA 4.0. Editing it here creates a Quire copy with its own history.

Synced with Wikipedia revision 165633906 · just now