ABAP / 4-ohjelmointikielessä käytetään kahta SQL-tyyppiä.
- OMA NIMI SQL
- AVAA SQL.
Natiivin SQL: n avulla voit käyttää tietokantakohtaisia SQL-käskyjä ABAP / 4-ohjelmassa. Tämä tarkoittaa, että voit käyttää tietokantataulukoita, joita ABAP-sanakirja ei hallinnoi, ja integroida tietoja, jotka eivät kuulu R / 3-järjestelmään.
Avoin SQL koostuu joukosta ABAP-lauseita, jotka suorittavat toimintoja R / 3-järjestelmän keskustietokannassa. Toimintojen tulokset ja mahdolliset virheilmoitukset ovat riippumattomia käytössä olevasta tietokantajärjestelmästä. Avoin SQL tarjoaa siten yhtenäisen syntaksin ja semantiikan kaikille SAP: n tukemille tietokantajärjestelmille. ABAP-ohjelmat, jotka käyttävät vain Open SQL -käskyjä, toimivat missä tahansa R / 3-järjestelmässä käytetystä tietokantajärjestelmästä riippumatta. Avoimet SQL-käskyt voivat toimia vain ABAP-sanakirjassa luotujen tietokantataulukkojen kanssa.
Avaa avoimet SQL-komennot
- VALITSE
- LISÄÄ
- PÄIVITTÄÄ
- MUUTTAA
- POISTAA
- AVAA KOHDISTIN, FETCH, SULJE KURSORI
PÖYTÄKIRJAT.DATA C TYYPPIKURSORI,WA LIKE SBOOK.AVAA KOHDISTIN C VALITSEEN * VARASTOSTA, Missä CARRID = 'LH'JA YHTEYDESSÄ = '0400'JA FLDATE = '19950228'TILAA ALKUPERÄISET AVAIMET.TEHDÄ.KIINNITÄ SEURAAVA KURSORI C WA: seen.JOS SY-SUBRC <> 0.KIINNI C.POISTU.LOPPU JOS.KIRJOITA: / WA-BOOKID, WA-CUSTOMID, WA-CUSTTYPE,WA-tupakoitsija, WA-PAIKKA, WA-WUNIT,WA-LASKU.LOPETA.
Lähettäkää Lufthansan lennon 0400 matkustajaluettelo 28-02.1995:
Avaa SQL-palautuskoodit
Kaikki avoimet SQL-lauseet täyttävät seuraavat kaksi järjestelmäkenttää palautuskoodeilla.SY-SUBRC
Jokaisen avoimen SQL-käskyn jälkeen järjestelmäkenttä SY-SUBRC sisältää arvon 0, jos operaatio onnistui, muun arvon kuin 0, jos ei.
SY-DBCNT
Avoimen SQL-käskyn jälkeen järjestelmäkenttä SY-DBCNT sisältää käsiteltyjen tietokantarivien määrän.
Natiivi SQL
Kuten jo mainittiin, Native SQL antaa sinun käyttää tietokantakohtaisia SQL-käskyjä ABAP-ohjelmassa.Jos haluat käyttää Native SQL -käskyä, sinun on edeltävä sitä EXEC SQL -käskyllä ja seurattava sitä ENDEXEC-käskyllä.
Syntaksi
EXEC SQL [SUORITTAVANatiivien SQL-käskyjen jälkeen ei ole jaksoa. Lisäksi käänteisten pilkujen (") tai tähtimerkin (*) käyttö rivin alussa natiivissa SQL-käskyssä ei tuo kommenttia kuten normaalissa ABAP-syntaksissa. Sinun on tiedettävä, ovatko taulukkojen ja kenttien nimet kirjainkoko- herkkä valitsemassasi tietokannassa.]. ENDEXEC.
Natiivisissa SQL-käskyissä tiedot siirretään tietokantataulukon ja ABAP-ohjelman välillä isäntämuuttujien avulla. Nämä ilmoitetaan ABAP-ohjelmassa, ja niitä edeltää Native SQL -käskyssä kaksoispiste (:). Voit käyttää alkeisrakenteita isäntämuuttujina. INTO-lauseen rakenteita käsitellään poikkeuksellisesti ikään kuin niiden kaikki kentät luetellaan erikseen.
Kuten Open SQL -ohjelmassa, SY-DBCNT sisältää ENDEXEC-käskyn jälkeen käsiteltyjen rivien määrän. Lähes kaikissa tapauksissa SY-SUBRC sisältää arvon 0 ENDEXEC-käskyn jälkeen.
Avaa SQL - Suorituskykysäännöt
SQL: n ja puolestaan ABAP-ohjelman suorituskyvyn parantamiseksi tulisi huolehtia seuraavista säännöistä -Pidä tulosjoukko pienenä
- Käyttämällä where-lauseketta
- Jos tietokannasta vaaditaan vain yksi tietue, käytä SELECT SINGLE aina kun mahdollista.
- Rajoita rivien määrää
- Jos taulukosta vaaditaan vain tiettyjä kenttiä, käytä SELECT
INTO… -lauseketta - Rajoita sarakkeiden lukumäärää
- Käytä aggregaattitoimintoja
- Vältä sisäkkäisiä valintasilmukoita
- Vaihtoehtoinen vaihtoehto on käyttää SELECT… KAIKKIEN KIRJOITUKSIIN -lausetta. Tämä lause voi usein olla paljon tehokkaampi kuin suorittaa suuri määrä SELECT- tai SELECT SINGLE -käskyjä sisäisen taulukon LOOP-toiminnon aikana.
- Käytä sanakirjanäkymiä
- Käytä liittymiä FROM-lauseessa
- Käytä ala-kyselyitä missä -lausekkeessa
- Käytä index-kenttiä missä -lausekkeessa
- Kun käytät tietokantoja, varmista aina, että oikeaa hakemistoa käytetään.
- Puskurointi
- Loogiset tietokannat
- Vältä toistuvaa pääsyä tietokantaan
- Jos haluat välttää saman SELECT-ohjelman suorittamisen useita kertoja (ja siksi sinulla on kaksoisvalinnat), sisäistä taulukkoa tyyppiä HASHED voidaan käyttää suorituskyvyn parantamiseen.