Nyissa meg az SQL & Natív SQL az SAP ABAP-ban

Tartalomjegyzék:

Anonim
A bemutató célja nem az SQL vagy az adatbázis fogalmak megtanítása, hanem az ABAP SQL sokféleségének megismertetése

Az ABAP / 4 programozási nyelvben kétféle SQL-t használnak.

  1. NATIVE SQL
  2. NYITVA SQL.
Az Open SQL lehetővé teszi az ABAP szótárban deklarált adatbázis-táblák elérését, függetlenül az R / 3 rendszer által használt adatbázis-platformtól.

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
Példa
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 
].ENDEXEC.
A natív SQL utasítások után nincs periódus. Továbbá fordított vesszők (") vagy csillag (*) használata egy sor elején egy natív SQL utasításban nem vezet be megjegyzést, mint a normál ABAP szintaxisban. Tudnia kell, hogy a érzékeny a választott adatbázisban.

A natív SQL utasításokban az adatokat az adatbázis tábla és az ABAP program között host változók segítségével szállítják. Ezeket az ABAP program deklarálja, és a Native SQL utasításban kettőspont (:) jelzi őket. Gazdaváltozóként elemi struktúrákat is használhat. Kivételesen az INTO záradék struktúráit úgy kezeljük, mintha minden mezőjük külön-külön lenne felsorolva.

Az Open SQL-hez hasonlóan az ENDEXEC utasítás után az SY-DBCNT tartalmazza a feldolgozott sorok számát. Szinte minden esetben az SY-SUBRC tartalmazza az ENDEXEC utasítás után a 0 értéket.

Open SQL - Teljesítményszabályok

Az SQL és az ABAP program teljesítményének javítása érdekében a következő szabályokra kell figyelni:

Tartsa az eredménykészletet kicsiben

  • A hol záradék használata
  • Ha csak egy rekordra van szükség az adatbázisból, használja a SELECT SINGLE lehetőséget, amikor csak lehetséges.
Minimalizálja az átvitt adatok mennyiségét
  • Korlátozza a vonalak számát
  • Ha egy táblából csak bizonyos mezők szükségesek, használja a SELECT INTO… utasítást
  • Korlátozza az oszlopok számát
  • Összesítő függvények használata
Minimalizálja az adatátvitelek számát
  • Kerülje a beágyazott kiválasztási hurkokat
  • Alternatív lehetőség a SELECT… MINDEN BEÍRÁSRA utasítás használata. Ez az utasítás gyakran sokkal hatékonyabb lehet, mint egy belső tábla LOOP során nagyszámú SELECT vagy SELECT SINGLE utasítás végrehajtása.
  • Szótár nézetek használata
  • Használja a Joins elemet a FROM záradékban
  • Használjon allekérdezéseket a where záradékban
Minimalizálja a keresési költségeket
  • Használjon index mezőket a hol záradékban
  • Az adatbázisok elérésekor mindig győződjön meg arról, hogy a megfelelő indexet használja.
Csökkentse az adatbázis terhelését
  • Pufferelés
  • Logikai adatbázisok
  • Kerülje az ismételt adatbázis-hozzáférést
Belső táblák használata a rekordok puffereléséhez
  • Annak elkerülése érdekében, hogy ugyanazt a SELECT-et többször is végrehajtja (és ezért duplikált kijelöléssel rendelkezik), a HASHED típusú belső tábla használható a teljesítmény javítására.