Ava SQL & Päris SQL SAP ABAP-is

Lang L: none (table-of-contents):

Anonim
Selle õpetuse eesmärk ei ole õpetada teile SQL-i või andmebaasi kontseptsioone, vaid tutvustada teile ABAP-i SQL-i mitmekesisust

ABAP / 4 programmeerimiskeeles kasutatakse kahte tüüpi SQL-i.

  1. Pärismaine SQL
  2. AVA SQL.
Avatud SQL võimaldab teil pääseda juurde ABAP-i sõnastikus deklareeritud andmebaasitabelitele, hoolimata andmebaasiplatvormist, mida R / 3 süsteem kasutab.

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
Näide
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 [TEOSTAB ].ENDEXEC.
Native 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.

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.
Minimeerige edastatud andmete hulk
  • Piirake ridade arvu
  • Kui tabelist nõutakse ainult teatud välju, kasutage lauset SELECT INTO ...
  • Piirake veergude arvu
  • Kasutage koondfunktsioone
Minimeerige andmeedastuste arv
  • 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
Minimeerige otsingu üldkulud
  • Kasuta klausli indeksvälju
  • Andmebaasidesse sisenemisel veenduge alati, et kasutatakse õiget indeksit.
Vähendage andmebaasi koormust
  • Puhverdamine
  • Loogilised andmebaasid
  • Vältige korduvat juurdepääsu andmebaasile
Sisemiste tabelite kasutamine kirjete puhverdamiseks
  • 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.