Avaa SQL & Natiivi SQL SAP ABAP: ssa

Sisällysluettelo:

Anonim
Tämän opetusohjelman tarkoituksena ei ole opettaa sinulle SQL- tai tietokantakonsepteja, vaan tutustuttaa sinut ABAP: n SQL-monimuotoisuuteen

ABAP / 4-ohjelmointikielessä käytetään kahta SQL-tyyppiä.

  1. OMA NIMI SQL
  2. AVAA SQL.
Avoin SQL antaa sinun käyttää ABAP-sanakirjassa ilmoitettuja tietokantataulukoita riippumatta R / 3-järjestelmän käyttämästä tietokanta-alustasta.

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
Esimerkki
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 [SUORITTAVA ].ENDEXEC.
Natiivien 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.

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.
Pienennä siirrettyjen tietojen määrä
  • Rajoita rivien määrää
  • Jos taulukosta vaaditaan vain tiettyjä kenttiä, käytä SELECT INTO… -lauseketta
  • Rajoita sarakkeiden lukumäärää
  • Käytä aggregaattitoimintoja
Pienennä tiedonsiirtojen määrää
  • 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
Pienennä haun yleiskustannuksia
  • Käytä index-kenttiä missä -lausekkeessa
  • Kun käytät tietokantoja, varmista aina, että oikeaa hakemistoa käytetään.
Vähennä tietokannan kuormitusta
  • Puskurointi
  • Loogiset tietokannat
  • Vältä toistuvaa pääsyä tietokantaan
Sisäisten taulukoiden käyttäminen tietueiden puskurointiin
  • 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.