ABAP / 4 programmeerimiskeeles kasutatakse kahte tüüpi SQL-i.
- Pärismaine SQL
- AVA SQL.
Native SQL võimaldab teil kasutada ABAP / 4 programmis andmebaasipõhiseid SQL-lauseid. See tähendab, et saate kasutada andmebaasitabeleid, mida ABAP sõnastik ei halda, ja integreerida seetõttu andmeid, mis ei kuulu R / 3 süsteemi.
Avatud SQL koosneb ABAP-lausete komplektist, mis täidab R / 3-süsteemi keskandmebaasis toiminguid. Toimingute tulemused ja veateated sõltuvad kasutatavast andmebaasisüsteemist. Avatud SQL pakub seega ühtlast süntaksit ja semantikat kõigile SAP-i toetatud andmebaasisüsteemidele. Ainult Open SQL-i lauseid kasutavad ABAP-programmid töötavad igas R / 3 süsteemis, olenemata kasutatavast andmebaasisüsteemist. Avatud SQL-i laused saavad töötada ainult ABAP-sõnastikus loodud andmebaasitabelitega.
Põhilised avatud SQL-käsklused
- VALI
- SISSE
- UUENDAMINE
- MUUTMA
- KUSTUTA
- AVATUD Kursor,? FETCH,? Sule kursor
LAUDUDE RAAMAT.ANDME C TÜÜPIKURSOR,WA LIKE RAAMAT.AVATUD KURSOR C VALI * RAAMATUST, KUS CARRID = 'LH'JA SEES = '0400'JA FLDATE = '19950228'TELLIMUS PÕHIVÕTI JÄRGI.TEE.JÄRGMINE Kursor C WA-sse.KUI SY-SUBRC <> 0.SULETUD KURSOR C.VÄLJU.ENDIF.KIRJUTA: / WA-BOOKID, WA-CUSTOMID, WA-CUSTTYPE,WA-SUitsetaja, WA-Raskus, WA-WUNIT,WA-ARV.LÕPPE.
Sisestage Lufthansa lennu 0400 reisijate nimekiri 28. veebruaril 1995:
Avage SQL-i tagastuskoodid
Kõik Open SQL-i laused täidavad järgmised kaks süsteemivälja tagastuskoodidega.SY-SUBRC
Iga avatud SQL-i lause järel sisaldab süsteemiväli SY-SUBRC väärtust 0, kui toiming õnnestus, muud väärtust kui 0, kui mitte.
SY-DBCNT
Pärast Open SQL-i lauset sisaldab süsteemiväli SY-DBCNT töödeldud andmebaasiridade arvu.
Päris SQL
Nagu juba mainitud, võimaldab Native SQL teil ABAP-programmis kasutada andmebaasispetsiifilisi SQL-lauseid.Native SQL-i lause kasutamiseks peate sellele eelnema käsku EXEC SQL ja järgima seda käsku ENDEXEC.
Süntaks
EXEC SQL [TEOSTABNative SQL-i lausete järel pole perioodi. Pealegi ei tooda SQL-natiivlause rea alguses algupäraseid komasid (") või tärni (*) kasutades kommentaari, nagu tavalises ABAP-süntaksis. Peate teadma, kas tabeli- ja väljanimed on tõstu- valitud andmebaasis tundlik.]. ENDEXEC.
Natiivsetes SQL-lausetes transporditakse andmed andmebaasitabeli ja ABAP-programmi vahel hostmuutujate abil. Need deklareeritakse ABAP-programmis ja neile eelneb Native SQL-i lauses koolon (:). Host-muutujatena saate kasutada elementaarseid struktuure. Erandkorras käsitletakse INTO-klausli struktuure nii, nagu oleksid kõik nende väljad loetletud eraldi.
Nagu Open SQL-is, sisaldab ka SY-DBCNT pärast lauset ENDEXEC töödeldud ridade arvu. Peaaegu kõigil juhtudel sisaldab SY-SUBRC pärast lauset ENDEXEC väärtust 0.
Avage SQL - toimivuse reeglid
SQL-i ja omakorda ABAP-i jõudluse parandamiseks tuleks hoolitseda järgmiste reeglite eest-Hoidke tulemuste komplekt väike
- Klausli kasutamine
- Kui andmebaasist on vaja ainult ühte kirjet, kasutage võimaluse korral valikut SINGLE.
- Piirake ridade arvu
- Kui tabelist nõutakse ainult teatud välju, kasutage lauset SELECT
INTO ... - Piirake veergude arvu
- Kasutage koondfunktsioone
- Vältige pesastatud valitud silmuseid
- Alternatiivne võimalus on kasutada käsku SELECT… KÕIGI KIRJELDUSEKS. See avaldus võib sageli olla palju tõhusam kui suure hulga SELECT või SELECT SINGLE lausete sooritamine sisemise tabeli LOOP ajal.
- Kasuta sõnastiku vaateid
- Kasutage klauslis FROM liitumisi
- Kasuta klauslit kus alampäringud
- Kasuta klausli indeksvälju
- Andmebaasidesse sisenemisel veenduge alati, et kasutatakse õiget indeksit.
- Puhverdamine
- Loogilised andmebaasid
- Vältige korduvat juurdepääsu andmebaasile
- Vältimaks sama SELECT-i mitmel korral täitmist (ja seetõttu oleks teil duplikaatvalikuid), saab jõudluse parandamiseks kasutada sisemist HASHED-tüüpi tabelit.