W języku programowania ABAP / 4 używane są dwa typy SQL.
- NATIVE SQL
- OPEN SQL.
Native SQL umożliwia używanie instrukcji SQL specyficznych dla bazy danych w programie ABAP / 4. Oznacza to, że można używać tabel bazy danych, które nie są administrowane przez słownik ABAP, a zatem integrować dane, które nie są częścią systemu R / 3.
Open SQL składa się z zestawu instrukcji ABAP, które wykonują operacje na centralnej bazie danych w systemie R / 3. Wyniki operacji i wszelkie komunikaty o błędach są niezależne od używanego systemu bazy danych. W ten sposób Open SQL zapewnia jednolitą składnię i semantykę dla wszystkich systemów baz danych obsługiwanych przez SAP. Programy ABAP, które używają tylko instrukcji Open SQL, będą działać w każdym systemie R / 3, niezależnie od używanego systemu baz danych. Instrukcje Open SQL mogą działać tylko z tabelami bazy danych, które zostały utworzone w słowniku ABAP.
Podstawowe polecenia Open SQL
- WYBIERZ
- WSTAWIĆ
- AKTUALIZACJA
- MODYFIKOWAĆ
- KASOWAĆ
- KURSOR OTWARTY,? FETCH,? KURSOR ZAMKNIĘTY
STOŁY SBOOK.KURSOR TYPU C DANYCH,WA LIKE SBOOK.OTWÓRZ KURSOR C DO WYBORU * Z SBOOK, GDZIE CARRID = 'LH'AND CONNID = '0400'AND FLDATE = „19950228”ZAMÓWIENIE WEDŁUG KLUCZA PODSTAWOWEGO.ZROBIĆ.FETCH NEXT CURSOR C INTO WA.IF SY-SUBRC <> 0.KURSOR ZAMKNIĘCIA C.WYJŚCIE.ENDIF.NAPISZ: / WA-BOOKID, WA-CUSTOMID, WA-CUSTTYPE,WA-SMOKER, WA-LUGGWEIGHT, WA-WUNIT,WA-FAKTURA.ENDDO.
Wyprowadź listę pasażerów na lot Lufthansy 0400 w dniu 28-02.1995:
Otwórz kody zwrotne SQL
Wszystkie instrukcje Open SQL wypełniają następujące dwa pola systemowe kodami powrotu.SY-SUBRC
Po każdej instrukcji Open SQL pole systemowe SY-SUBRC zawiera wartość 0, jeśli operacja się powiodła, a wartość inną niż 0, jeśli nie.
SY-DBCNT
Po instrukcji Open SQL pole systemowe SY-DBCNT zawiera liczbę przetworzonych wierszy bazy danych.
Natywny SQL
Jak już wspomniano, Native SQL umożliwia użycie instrukcji SQL specyficznych dla bazy danych w programie ABAP.Aby użyć rodzimej instrukcji SQL, należy poprzedzić ją instrukcją EXEC SQL, a po niej wstawić instrukcję ENDEXEC.
Składnia
EXEC SQL [PERFORMING