PL / pgSQL ( Lenguaje de procedimiento / PostgreSQL ) es un lenguaje de programación de procedimiento compatible con PostgreSQL ORDBMS . Se parece mucho a Oracle 's PL / SQL lenguaje. Implementado por Jan Wieck, PL / pgSQL apareció por primera vez con PostgreSQL 6.4, lanzado el 30 de octubre de 1998. [1] La versión 9 también implementa algunas características ISO SQL / PSM , como la sobrecarga de funciones y procedimientos invocados por SQL. [2]
Diseñada por | Jan Wieck |
---|---|
Desarrollador | Grupo de desarrollo global de PostgreSQL |
Apareció por primera vez | 30 de octubre de 1998 |
Sitio web | www |
Influenciado por | |
PL / SQL , Ada |
PL / pgSQL, como lenguaje de programación con todas las funciones, permite mucho más control de procedimientos que SQL , incluida la capacidad de usar bucles y otras estructuras de control. Las sentencias SQL y los disparadores pueden llamar a funciones creadas en el lenguaje PL / pgSQL.
El diseño de PL / pgSQL tenía como objetivo permitir a los usuarios de PostgreSQL realizar operaciones y cálculos más complejos que SQL, al tiempo que proporcionaba facilidad de uso. El servidor puede definir el idioma como de confianza. [3]
PL / pgSQL es uno de los lenguajes de programación incluidos en la distribución estándar de PostgreSQL, [4] los otros son PL / Tcl , PL / Perl [5] y PL / Python. [6] Además, hay muchos otros disponibles de terceros, incluidos PL / Java, [7] PL / pgPSM, [8] PL / php, [9] PL / R, [10] PL / Ruby, [11] PL / sh , PL / Lua y PL / v8 . PostgreSQL usa Bison como analizador, [12] facilitando la migración de muchos lenguajes de código abierto , así como la reutilización de código .
Comparando con PSM
El lenguaje SQL / PSM está especificado por un estándar ISO, pero también está inspirado en PL / SQL y PL / pgPL / SQL de Oracle, por lo que hay pocas diferencias. El módulo de contribución PL / pgPSM implementa el estándar. Las principales características de PSM que difieren de PL / pgSQL: [8] [13]
- Los controladores de excepciones son subrutinas (controladores continuos);
- Las advertencias se pueden manejar como una excepción;
- La declaración de variables debe basarse en el resultado de la consulta SQL.
Los tres lenguajes (Oracle PL / SQL, [14] PostgreSQL PL / pgSQL e ISO SQL / PSM [15] ) descienden originalmente del lenguaje de programación Ada .
Soporte externo de documentación en línea
Seudolenguaje formal para documentación, se puede incrustar en scripts SQL y PL / pgSQL, y será procesado (extracción de datos de documentación y generación de hipertexto de documentación) por una herramienta externa, el generador de documentación . Algunas de estas herramientas tienen soporte para PL / SQL, por lo que se espera que también sea compatible con PL / pgSQL, en soporte total o parcial.
Herramienta | PL / pgSQL completo | Estilo Javadoc | Otro estilo | Proyectos PL / pgSQL usándolo |
---|---|---|---|---|
¡Documento! X | ? | sí | sí | ? |
Documentos naturales | ? | No | sí | ? |
ROBODoc | ? | sí | No | ? |
Otras herramientas de documentación: Doxygen , DBScribe, HyperSQL, Universal Report.
Referencias
- ^ "Documentación de PostgreSQL, Apéndice E: Notas de la versión, versión 6.4" . Grupo de desarrollo global de PostgreSQL.
- ^ "característica T322" , características estándar de SQL (9 ed.), PostgreSQL.
- ^ "PL / pgSQL - Lenguaje de procedimiento SQL" . PostgreSQL . Consultado el 15 de noviembre de 2007 .
- ^ "Lenguajes de procedimiento" .
- ^ "PL / Perl" , Docs (edición actual), PostgreSQL.
- ^ "PL / Python" , Docs (edición actual), PostgreSQL.
- ^ "PL / Java" , Gborg (proyecto), PostgreSQL.
- ^ a b SQL / PSM (manual), PostgreSQL.
- ^ "PL / PHP" , Comunidad , Símbolo del sistema.
- ^ Conway, Joe, PL / I , Archivado desde el original en 19/06/2014 , recuperado 2005-02-25.
- ^ PL / Ruby (proyecto), Ruby lang, 2018-11-23.
- ^ "Etapa del analizador" , Docs ( 9.ª ed.), PostgreSQL
- ^ Stehule, P, "Propuesta: PL / pgPSM para pg9.3" , Hackers (lista de correo), PostgreSQL.
- ^ "C. Límites del programa PL / SQL" , Referencia del lenguaje PL / SQL , Documentación en línea de la base de datos (11g Release 1 (11.1) ed.), Oracle, p. 87,
PL / SQL se basa en el lenguaje de programación Ada.
- ^ "1", procedimientos almacenados ( ODP ) , O'Reilly.
enlaces externos
- Documentación oficial PL / pgSQL
- PL / pgSQL (en) , tutorial y ejemplos