OpenSQL

Open SQL est un dérivé SQL propriétaire qui provient de SAP . SAP a l'intention d' offrir un dialecte SQL uniforme pour toutes les bases de données prises en charge par SAP. Open SQL fait partie du langage de programmation ABAP . Mais il existe également une version (moins importante) pour Java . L'utilisation d'Open SQL nécessite un serveur d'applications SAP ABAP ou Java. De plus, toutes les tables de base de données utilisées doivent être créées dans le propre dictionnaire SAP. Le but d'Open SQL est que les commandes SQL utilisées fournissent le même résultat sur toutes les bases de données. À cette fin, le serveur d'applications respectif contient son propre analyseur SQL et un convertisseur qui convertit la commande Open SQL en dialecte de base de données natif respectif.

Fonctionnalité et portée

Dans les versions plus récentes, Open SQL pour ABAP contient de grandes parties de la norme SQL-92 avec de nombreuses extensions. Par exemple, les expressions arithmétiques, CASE ... ENDCASE, certaines fonctions SQL et expressions de table courantes sont prises en charge. Grâce à l'émulation au sein du serveur d'applications, des fonctions peuvent également être proposées qui ne sont pas prises en charge par toutes les bases de données prises en charge par SAP. Un exemple ici sont par exemple B. Flux et localisateurs avec lesquels les grands champs LOB de la base de données peuvent être lus et écrits section par section.

La portée d'Open SQL pour Java est beaucoup plus petite.

les particularités

  • Intégration transparente dans le système de type SAP (ABAP), quel que soit le système de type de la base de données.
  • Vérification de la syntaxe statique au moment de la compilation (contrairement à d'autres interfaces de base de données telles que JDBC ).
  • SQL dynamique et semi-dynamique (des parties de l'instruction SQL peuvent être transférées dynamiquement au moment de l'exécution. Les parties statiques peuvent toujours être vérifiées au moment de la compilation).
  • SAP propres extensions, par ex. POUR TOUTES LES ENTRÉES (jointure de tables de base de données avec des tables dites internes, c'est-à-dire des variables).
  • Les tables peuvent être mises en mémoire tampon dans le serveur d'applications, puis lues à l'aide d'Open SQL sans accès à la base de données. Pour cela, le serveur d'application contient un moteur de base de données ( en mémoire ) (avec une portée considérablement réduite).

Bases de données prises en charge

Les versions actuelles de SAP prennent en charge SAP HANA , Oracle , MaxDB , DB2 , Microsoft SQL Server et Sybase ASE. Historiquement, Informix était également pris en charge.

SQL natif

SAP utilise Native SQL pour désigner les dialectes SQL des bases de données sous-jacentes. Un exemple serait le SQL de la base de données Oracle, qui, comme DB2 ou MaxDB, a une portée de langage différente de celle d'Open SQL. L' environnement d'exécution ABAP convertit ensuite les commandes Open SQL en commandes Native SQL correspondantes. En utilisant ADBC ou JDBC ou AMDP (informatique) (ABAP uniquement), ABAP ou Les commandes Java Native SQL peuvent également être envoyées directement.

mots clés

L'ensemble de langues d'Open SQL se compose d'un sous-ensemble de mots clés de SQL standard , qui a été amélioré avec certains éléments spécifiques à SAP. Les mots-clés suivants peuvent être utilisés dans Open SQL:

  • SELECT, FINSELECT
  • INSÉRER
  • MODIFIER
  • METTRE À JOUR
  • EFFACER
  • OUVRIR CURSEUR, FERMER CURSEUR
  • FETCH
  • AVEC (depuis ABAP Kernel 749)

Open SQL ne contient aucune commande du langage de définition de données . Les tables ou vues ne peuvent pas être créées ou modifiées avec les méthodes Open SQL. Ceci n'est possible qu'en utilisant le dictionnaire ABAP ou Java.

Variables système

Deux variables système utilisées pour renvoyer des valeurs sont prises en charge par les commandes Open SQL et font partie du jeu de langues Open SQL:

SY-SUBRC
Valeur de retour de la dernière commande appelée.
SY-DBCNT
Nombre d'enregistrements de données traités par la dernière commande SQL appelée.

liens web