SQL embutido - Embedded SQL

SQL embutido é um método de combinar o poder de computação de uma linguagem de programação e os recursos de manipulação de banco de dados do SQL . As instruções SQL incorporadas são instruções SQL escritas em linha com o código-fonte do programa , da linguagem do host. As instruções SQL embutidas são analisadas por um pré - processador SQL embutido e substituídas por chamadas de linguagem host para uma biblioteca de código . A saída do pré-processador é então compilada pelo compilador host . Isso permite que os programadores incorporem instruções SQL em programas escritos em qualquer número de linguagens, como C / C ++ , COBOL e Fortran . Isso difere das linguagens de programação derivadas de SQL que não passam por pré-processadores discretos, como PL / SQL e T-SQL .

O comitê de padrões SQL definiu o padrão SQL embutido em duas etapas: um formalismo chamado Module Language foi definido e, em seguida, o padrão SQL embutido foi derivado de Module Language. O padrão SQL define a incorporação de SQL como SQL incorporada e a linguagem na qual as consultas SQL são incorporadas é conhecida como a linguagem do host . Uma linguagem de host popular é C. A linguagem de host C e SQL embutido, por exemplo, é chamada de Pro * C nos sistemas de gerenciamento de banco de dados Oracle e Sybase , ESQL / C no Informix e ECPG no sistema de gerenciamento de banco de dados PostgreSQL . SQL também pode ser embutido em linguagens como PHP etc.

Sistemas que suportam SQL embutido

Altibase

C / C ++
APRE é um pré-compilador SQL incorporado fornecido pela Altibase Corp. para seu servidor DBMS.

IBM DB2

O IBM DB2 versão 9 para Linux, UNIX e Windows suporta SQL integrado para C, C ++, Java, COBOL, FORTRAN e REXX embora o suporte para FORTRAN e REXX tenha sido descontinuado.

IBM Informix

IBM Informix versão 14.10 para Linux, Unix e Windows oferece suporte a SQL integrado para C.}

Microsoft SQL Server

C / C ++
O SQL incorporado para C foi preterido no Microsoft SQL Server 2008, embora versões anteriores do produto o suportem.

Mimer SQL

Mimer SQL para Linux, macOS , OpenVMS e Windows oferece suporte a SQL embutido.

C / C ++
SQL incorporado para C / C ++ é compatível com Linux, macOS, OpenVMS e Windows.
COBOL
SQL embutido para COBOL é compatível com OpenVMS.
Fortran
SQL incorporado para Fortran é compatível com OpenVMS.

Banco de dados Oracle

Ada
Pro * Ada foi oficialmente desativado pela Oracle na versão 7.3. A partir do Oracle8, o Pro * Ada foi substituído pelo Módulo SQL *, mas parece não ter sido atualizado desde então. O módulo SQL * é uma linguagem de módulo que oferece um método de programação diferente do SQL embutido. O módulo SQL * suporta o padrão de linguagem Ada83 para Ada.
C / C ++
Pro * C tornou-se Pro * C / C ++ com Oracle8. Pro * C / C ++ é atualmente suportado a partir do Oracle Database 11g .
COBOL
O Pro * COBOL é atualmente compatível com o Oracle Database 11g .
Fortran
O Pro * FORTRAN não é mais atualizado a partir do Oracle8, mas a Oracle continuará a lançar versões de patches à medida que os bugs são relatados e corrigidos.
Pascal
Pro * Pascal não foi lançado com Oracle8.
PL / I
O Pro * PL / I não foi lançado com o Oracle8. O suplemento Pro * PL / I para o Guia dos pré-compiladores da Oracle , no entanto, continuou a fazer aparições na Biblioteca de Documentação da Oracle até a versão 11 g . A partir da versão 12c, o Pro * PL / I foi removido da Biblioteca de Documentação Oracle.

PostgreSQL

C / C ++
ECPG faz parte do PostgreSQL desde a versão 6.3.
COBOL
A Cobol-IT agora está distribuindo um pré-compilador COBOL para PostgreSQL
A Micro Focus fornece suporte por meio de seu pré-processador OpenESQL

Raima Database Manager (RDM)

Raima Database Manager suporta SQL embutido para C / C ++ e SQL PL.

SAP Sybase

SAP Sybase ASE 15.7 oferece suporte a SQL embutido para C e COBOL como parte do Software Developer Kit Sybase .

SAP Sybase SQL Anywhere oferece suporte a SQL embutido para C e C ++ como parte do sistema de gerenciamento de banco de dados SQL Anywhere SQL Anywhere .

SAP Sybase IQ suporta SQL embutido para C e C ++ como parte do sistema de gerenciamento de banco de dados Sybase IQ Sybase IQ .

SQL incorporado por meio de linguagens específicas de domínio

Veja também

Referências

  1. ^ "O conceito de linguagem do módulo" . Módulo SQL * para Guia do Programador Ada, Versão 8.0, Capítulo 1. Introdução ao Módulo SQL * . Oracle Corporation . Página visitada em 14/07/2008 . CS1 maint: parâmetro desencorajado ( link )
  2. ^ "Banco de dados DB2 para Linux, UNIX e Windows" . Desenvolvimento de aplicativos SQL incorporados . IBM . Página visitada em 2009-04-10 . CS1 maint: parâmetro desencorajado ( link )
  3. ^ "Informix Dynamic Server" . IBM Informix ESQL / C . IBM . Recuperado em 2020-03-31 . CS1 maint: parâmetro desencorajado ( link )
  4. ^ "Recursos obsoletos do mecanismo de banco de dados no SQL Server 2008" . Manuais online do SQL Server 2008 (março de 2009) . Microsoft . Página visitada em 2009-04-10 . CS1 maint: parâmetro desencorajado ( link )
  5. ^ "SQL incorporado" . Mimer SQL Programmer's Manual version 11.0, Embedded SQL . Mimer SQL .
  6. ^ "Suporte Ada na versão 8" . Oracle9i Database Migration, Release 2 (9.2), Capítulo 5. Compatibilidade e interoperabilidade . Oracle Corporation . Página visitada em 14/07/2008 . CS1 maint: parâmetro desencorajado ( link )
  7. ^ a b c "Alternativas de idioma" . Guia do Programador do Pré-compilador Pro * COBOL, Versão 8.0, Capítulo 1. Introdução . Oracle Corporation . Página visitada em 14/07/2008 . CS1 maint: parâmetro desencorajado ( link )
  8. ^ "Artigo técnico da Raima" (PDF) .
  9. ^ "EmbeddedSQL" . Produtos SAP Sybase . SAP Sybase . Página visitada em 05/09/2012 . CS1 maint: parâmetro desencorajado ( link )
  10. ^ "SAP Sybase SQL Anywhere" . Produtos SAP Sybase . SAP Sybase. Arquivado do original em 01/05/2013 . Página visitada em 2013-05-02 . CS1 maint: parâmetro desencorajado ( link )
  11. ^ "SAP Sybase IQ" . Produtos SAP Sybase . SAP Sybase. Arquivado do original em 04/05/2013 . Página visitada em 2013-05-02 . CS1 maint: parâmetro desencorajado ( link )

links externos