====== Open SQL ====== Open SQL est un sous-langage de l'ABAP permettant d'intéragir avec la base de données. Il reprend la syntaxe SQL classique mais comprend quelques particularités : * ''SELECT ... FOR ALL ENTRIES'' (Rappel : toujours vérifier que la table sur laquelle on boucle n'est pas vide sous peine de ramasser en jointure toutes les entrées de la table requêtée...) * L'instruction ''MODIFY'' doit être employée au sein d'une boucle sur la table interne correspondante à moins de spécifier explicitement l'index :* J'utilise le table header ici, mais ça marche pareil avec une work area explicite TABLES dbtab. LOOP AT dbtab. dbtab-k2 = val2. MODIFY dbtab. ENDLOOP. * Ou bien : READ TABLE dbtab into wa WITH KEY k1 = val1. wa-k2 = val2. MODIFY dbtab FROM wa INDEX sy-tabix. " Eh ouais, le READ TABLE set le sy-tabix :) * ''SELECT'' * ''INSERT'' : Dump en cas de doublon. * ''UPDATE'' : * ''MODIFY'' : Insert les lignes nouvelles, update les lignes existantes (d'après les clés). [[sap:tips_tricks#SQL|Tips]] ===== Optimizer ===== [[http://wiki.scn.sap.com/wiki/display/ABAP/SQL+Optimizer]]