El módulo SQL es un método que combina la potencia de cálculo de un lenguaje de programación y las capacidades de manipulación de bases de datos de SQL . Las sentencias de módulo SQL son sentencias SQL escritas en un módulo de cliente SQL, que pueden llamarse como rutinas desde el código fuente del programa en lenguaje host como una rutina de lenguaje host. Un archivo de lenguaje de módulo estándar de SQL se compila en llamadas a una biblioteca de tiempo de ejecución de SQL que interactúa con el sistema de administración de bases de datos . Esto permite a los programadores llamar sentencias SQL desde aplicaciones escritas en lenguajes de programación regulares.
El uso del lenguaje de módulos es muy sencillo: se coloca todo el código SQL en un módulo separado y se define una interfaz entre el módulo que contiene el código SQL y el programa anfitrión. [1]
El módulo SQL está estrechamente relacionado con el SQL integrado . "Los módulos de cliente SQL son colecciones autónomas de sentencias SQL. A diferencia del SQL integrado, en el que las sentencias SQL se insertan en el lenguaje de programación del host, los módulos de cliente SQL están separados del lenguaje del host. El lenguaje del host contiene llamadas que invocan el módulo, que a su vez ejecuta las sentencias SQL dentro de ese módulo". [2]
El estándar SQL:2023 (ISO/IEC 9075-2:2023 Tecnología de la información — Lenguajes de bases de datos SQL — Parte 2: Fundamentos (SQL/Foundation), capítulo 13 [3] ) define un módulo SQL como un módulo de cliente SQL , y el lenguaje en el que se invocan las consultas SQL se denomina lenguaje host . Los lenguajes host especificados son:
(Todos los idiomas enumerados anteriormente son características opcionales, lo que significa que cada proveedor puede decidir qué idioma(s) admitir).
Mimer SQL 11.0 y versiones posteriores para Linux , macOS , OpenVMS y Windows admiten el módulo SQL para C/C++, y Mimer SQL para OpenVMS también admite el módulo SQL para COBOL, Fortran y Pascal. [4]
Oracle 8.0 admitía SQL*Module para Ada, pero esta compatibilidad se ha eliminado en versiones posteriores. [5] SQL*Module es un lenguaje de módulo que admite el estándar de lenguaje Ada83 para Ada. [6]
Los lenguajes host soportados son Ada, BASIC , C, COBOL, Fortran, Pascal y PL/I. [7]