The SQL standards committee defined the embedded SQL standard in two steps: a formalism called Module Language was defined, then the embedded SQL standard was derived from Module Language.[1] The SQL standard defines embedding of SQL as embedded SQL and the language in which SQL queries are embedded is referred to as the host language. A popular host language is C. Host language C and embedded SQL, for example, is called Pro*C in Oracle and Sybase database management systems, ESQL/C in Informix, and ECPG in the PostgreSQL database management system. SQL may also be embedded in languages like PHP etc.
Systems that support embedded SQL
Altibase
- C/C++
- APRE is an embedded SQL precompiler provided by Altibase Corp. for its DBMS server.
IBM DB2
IBM DB2 version 9 for Linux, UNIX and Windows supports embedded SQL for C, C++, Java, COBOL, FORTRAN and REXX although support for FORTRAN and REXX has been deprecated.[2]
IBM Informix
IBM Informix version 14.10 for Linux, Unix, and Windows supports embedded SQL for C. [3]}
Microsoft SQL Server
- C/C++
- Embedded SQL for C has been deprecated as of Microsoft SQL Server 2008 although earlier versions of the product support it.[4]
Mimer SQL
Mimer SQL for Linux, macOS, OpenVMS and Windows support embedded SQL.[5]
- C/C++
- Embedded SQL for C/C++ is supported on Linux, macOS, OpenVMS and Windows.
- COBOL
- Embedded SQL for COBOL is supported on OpenVMS.
- Fortran
- Embedded SQL for Fortran is supported on OpenVMS.
Oracle Database
- Ada
- Pro*Ada was officially desupported by Oracle in version 7.3. Starting with Oracle8, Pro*Ada was replaced by SQL*Module but appears to have not been updated since.[6] SQL*Module is a module language that offers a different programming method from embedded SQL. SQL*Module supports the Ada83 language standard for Ada.
- C/C++
- Pro*C became Pro*C/C++ with Oracle8. Pro*C/C++ is currently supported as of Oracle Database 11g.
- COBOL
- Pro*COBOL is currently supported as of Oracle Database 11g.
- Fortran
- Pro*FORTRAN is no longer updated as of Oracle8 but Oracle will continue to issue patch releases as bugs are reported and corrected.[7]
- PL/I
- Pro*PL/I was not released with Oracle8. The Pro*PL/I Supplement to the Oracle Precompilers Guide, however, continued to make appearances in the Oracle Documentation Library until release 11g. As of release 12c, the Pro*PL/I has been removed from the Oracle Documentation Library.[7]
PostgreSQL
- C/C++
- ECPG is part of PostgreSQL since version 6.3.
- COBOL
- Cobol-IT is now distributing a COBOL precompiler for PostgreSQL
- Micro Focus provides support via their OpenESQL preprocessor
Raima Database Manager (RDM)
Raima Database Manager supports embedded SQL for C/C++ and SQL PL.[8]
SAP Sybase
SAP Sybase ASE 15.7 supports embedded SQL for C and COBOL as part of the Software Developer Kit Sybase.[9]
SAP Sybase SQL Anywhere supports embedded SQL for C and C++ as part of the SQL Anywhere database management system SQL Anywhere.[10]
SAP Sybase IQ supports embedded SQL for C and C++ as part of the Sybase IQ database management system Sybase IQ.[11]
Embedded SQL through domain-specific languages
- LINQ-to-SQL embeds a SQL-like language into .NET languages.
- JPA embeds a SQL-like language through Criteria API into Java.
- jOOQ embeds a SQL-like language into Java.
See also
- Language binding
- PL/SQL
- Pro*C/C++
- SQL/OLB
- SQL PL
- Transact-SQL
References
- ^ "The Module Language Concept". SQL*Module for Ada Programmer's Guide, Release 8.0, Chapter 1. Introduction to SQL*Module. Oracle Corporation. Retrieved 2008-07-14.
- ^ "DB2 Database for Linux, UNIX and Windows". Developing Embedded SQL Applications. IBM. Retrieved 2009-04-10.
- ^ "Informix Dynamic Server". IBM® Informix® ESQL/C. IBM. Retrieved 2020-03-31.
- ^ "Deprecated Database Engine Features in SQL Server 2008". SQL Server 2008 Books Online (March 2009). Microsoft. Retrieved 2009-04-10.
- ^ "Embedded SQL". Mimer SQL Programmer's Manual version 11.0, Embedded SQL. Mimer SQL.
- ^ "Ada Support in Version 8". Oracle9i Database Migration, Release 2 (9.2), Chapter 5. Compatibility and Interoperability. Oracle Corporation. Retrieved 2008-07-14.
- ^ a b c "Language Alternatives". Pro*COBOL Precompiler Programmer's Guide, Release 8.0, Chapter 1. Introduction. Oracle Corporation. Retrieved 2008-07-14.
- ^ "Raima Technical Whitepaper" (PDF).
- ^ "EmbeddedSQL". SAP Sybase Products. SAP Sybase. Retrieved 2012-09-05.
- ^ "SAP Sybase SQL Anywhere". SAP Sybase Products. SAP Sybase. Archived from the original on 2013-05-01. Retrieved 2013-05-02.
- ^ "SAP Sybase IQ". SAP Sybase Products. SAP Sybase. Archived from the original on 2013-05-04. Retrieved 2013-05-02.