SQL / PSM - SQL/PSM
Paradigma | Multiparadigma |
---|---|
Apareceu pela primeira vez | 1996 |
Versão estável | |
SO | Plataforma cruzada (multiplataforma) |
Implementações principais | |
PL / SQL MySQL / MariaDB da IBM SQL PL Mimer SQL | |
Influenciado por | |
PL / SQL Ada |
SQL / PSM ( SQL / Persistent Stored Modules) é um padrão ISO que define principalmente uma extensão de SQL com uma linguagem procedural para uso em procedimentos armazenados . Publicado inicialmente em 1996 como uma extensão do SQL-92 (ISO / IEC 9075-4: 1996, uma versão às vezes chamada de PSM-96 ou mesmo SQL-92 / PSM), o SQL / PSM foi posteriormente incorporado ao SQL de várias partes : Padrão de 1999 e tem sido a parte 4 desse padrão desde então, mais recentemente no SQL: 2016 . O SQL: 1999 parte 4 cobriu menos do que o PSM-96 original porque as instruções SQL para definir, gerenciar e invocar rotinas foram realmente incorporadas na parte 2 SQL / Foundation, deixando apenas a linguagem procedural em si como SQL / PSM. Os recursos SQL / PSM ainda são opcionais no que diz respeito ao padrão SQL; a maioria deles está agrupada nos recursos P001-P008.
O SQL / PSM padroniza a sintaxe e a semântica para o fluxo de controle , tratamento de exceções (chamado "tratamento de condição" no SQL / PSM), variáveis locais, atribuição de expressões a variáveis e parâmetros e uso (procedural) de cursores . Ele também define um esquema de informações ( metadados ) para procedimentos armazenados. SQL / PSM é uma linguagem na qual os métodos para os tipos estruturados SQL: 1999 podem ser definidos. O outro é Java, via SQL / JRT .
SQL / PSM é derivado, aparentemente diretamente, do PL / SQL da Oracle . A Oracle desenvolveu o PL / SQL e o lançou em 1991, baseando-se na linguagem de programação Ada do Departamento de Defesa dos Estados Unidos . No entanto, a Oracle manteve-se distante do padrão em sua documentação. O SQL PL da IBM (usado no DB2) e o PSM do Mimer SQL foram os dois primeiros produtos a implementar oficialmente o SQL / PSM. É comumente pensado que essas duas linguagens, e talvez também a linguagem procedural do MySQL / MariaDB , sejam as mais próximas do padrão SQL / PSM. No entanto, um addon PostgreSQL implementa SQL / PSM (junto com suas outras linguagens procedurais como o plpgsql derivado de PL / SQL), embora não faça parte do produto principal.
A funcionalidade RDF no OpenLink Virtuoso foi desenvolvida inteiramente por meio de SQL / PSM, combinada com tipos de dados personalizados (por exemplo, ANY
para lidar com URI e objetos de relação Literal), indexação sofisticada e opções de armazenamento físico flexíveis (coluna ou linha).
Veja também
As seguintes implementações adotam o padrão, mas não são 100% compatíveis com SQL / PSM:
- Procedimentos e funções armazenados HSQLDB
- Procedimentos armazenados MySQL / MariaDB
- Procedimentos OpenLink Virtuoso SQL (VSP)
- PostgreSQL PL / pgSQL
Proprietário:
- Oracle PL / SQL
- Microsoft e Sybase Transact-SQL
- SQL procedimental invasivo
Referências
Leitura adicional
- Jim Melton, Understanding SQL's Stored Procedures: A Complete Guide to SQL / PSM , Morgan Kaufmann Publishers, 1998, ISBN 1-55860-461-8