PL/PgSQL

PL/pgSQL
Desarrollador(es)
Jan Wieck
www.postgresql.org/docs/current/static/plpgsql.html
Información general
Apareció en 30 de octubre de 1998
Influido por PL/SQL, Ada
Licencia PostgreSQL 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

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

  1. «PostgreSQL Documentation, Appendix E: Release Notes, Release 6.4» [Documentación PostgreSQL, Apéndice E: Notas de la versión, Versión 6.4]. PostgreSQL Global Development Group. Junio de 2012. 

Enlaces externos

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.