Az ABAP / 4 programozási nyelvben kétféle SQL-t használnak.
- NATIVE SQL
- NYITVA SQL.
A natív SQL lehetővé teszi adatbázis-specifikus SQL utasítások használatát az ABAP / 4 programban. Ez azt jelenti, hogy használhat olyan adatbázis-táblázatokat, amelyeket nem az ABAP szótár felügyel, és ezért olyan adatokat is integrálhat, amelyek nem részei az R / 3 rendszernek.
Az Open SQL egy ABAP utasításokból áll, amelyek az R / 3 rendszer központi adatbázisán hajtanak végre műveleteket. A műveletek eredményei és az esetleges hibaüzenetek függetlenek a használt adatbázis-rendszertől. Az Open SQL tehát egységes szintaxist és szemantikát biztosít az összes SAP által támogatott adatbázis-rendszer számára. Azok az ABAP programok, amelyek csak Open SQL utasításokat használnak, bármely R / 3 rendszerben működnek, függetlenül a használt adatbázis rendszertől. A nyitott SQL utasítások csak az ABAP szótárban létrehozott adatbázis táblákkal működhetnek.
Alapvető Open SQL parancsok
- SELECT
- INSERT
- FRISSÍTÉS
- MÓDOSÍT
- TÖRÖL
- NYITOTT KURZOR,? FETCH,? ZÁR KURZOR
TÁBLÁZATOK KÖNYV.C ADAT TÍPUS kurzor,SZERETNI KÖNYV.Nyissa meg a C kurzort a KIVÁLASZTÁSHOZ * A SBOOKBÓL, HOL CARRID = 'LH'ÉS SZERINT = „0400”ÉS FLDATE = '19950228'RENDELÉS ELSŐDLEGES KULCSBAN.DO.A KÖVETKEZŐ C KURZOR WA-ba.HA SY-SUBRC <> 0.ZÁRÓ kurzor C.KIJÁRAT.ENDIF.ÍRJ: / WA-BOOKID, WA-CUSTOMID, WA-CUSTTYPE,WA-Dohányzó, WA-Súly, WA-WUNIT,WA-SZÁMLA.ENDDO.
Írja ki a Lufthansa 0400-as járatának 1995. február 28-i utaslistáját:
Nyissa meg az SQL visszatérési kódokat
Minden Open SQL utasítás kitölti a következő két rendszermezőt visszatérési kódokkal.SY-SUBRC
Minden Open SQL utasítás után az SY-SUBRC rendszermező tartalmazza a 0 értéket, ha a művelet sikeres volt, ha nem, akkor a 0 értéket.
SY-DBCNT
Nyitott SQL utasítás után az SY-DBCNT rendszermező tartalmazza a feldolgozott adatbázis-sorok számát.
Natív SQL
Mint már említettük, a natív SQL lehetővé teszi adatbázis-specifikus SQL utasítások használatát az ABAP programban.A Native SQL utasítás használatához meg kell előznie az EXEC SQL utasítást, és az ENDEXEC utasítással kell követnie.
Szintaxis
EXEC SQL [PERFORMING