Zum Inhalt springen

„Open SQL“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][ungesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Änderungen von 83.215.235.253 (Diskussion) rückgängig gemacht (HG) (3.4.6)
Markierung: Zurücksetzung
Open SQL ist in ABAP SQL umbenannt, siehe z.B. die ABAP keyword documentation. https://help.sap.com/doc/abapdocu_cp_index_htm/CLOUD/en-US/abenopensql.htm, da S/4 HANA nur noch eine Datenbank unterstützt.
Zeile 1: Zeile 1:
'''Open SQL''' ist ein proprietäres SQL-Derivat, das vom Unternehmen [[SAP]] stammt. SAP beabsichtigt damit, einen einheitlichen [[SQL]]-Dialekt für alle von SAP unterstützten Datenbanken anzubieten. Open SQL ist Bestandteil der Programmiersprache [[ABAP]]. Es gibt aber auch eine (weniger bedeutsame) Version für [[Java (Programmiersprache)|Java]]. Die Benutzung von Open SQL setzt einen SAP ABAP oder Java Application Server voraus. Außerdem müssen alle verwendeten [[Datenbanktabelle]]n im SAP-eigenen Dictionary erstellt werden. Ziel von Open SQL ist es, dass die verwendeten SQL-Befehle auf allen Datenbanken das gleiche Ergebnis liefern. Zu diesem Zweck enthält der jeweilige Application Server einen eigenen SQL-[[Parser]] und einen Umsetzer, der das Open-SQL-Kommando in den jeweiligen nativen Datenbankdialekt umwandelt.
'''Open SQL''' war ein proprietäres SQL-Derivat, das vom Unternehmen [[SAP]] stammte. SAP beabsichtigte damit, einen einheitlichen [[SQL]]-Dialekt für alle von SAP unterstützten Datenbanken anzubieten. Open SQL ist Bestandteil der Programmiersprache [[ABAP]]. Es gibt aber auch eine (weniger bedeutsame) Version für [[Java (Programmiersprache)|Java]]. Die Benutzung von Open SQL setzte einen SAP ABAP oder Java Application Server voraus. Außerdem mussten alle verwendeten [[Datenbanktabelle]]n im SAP-eigenen Dictionary erstellt werden. Ziel von Open SQL war es, dass die verwendeten SQL-Befehle auf allen Datenbanken das gleiche Ergebnis liefern. Zu diesem Zweck enthielt der jeweilige Application Server einen eigenen SQL-[[Parser]] und einen Umsetzer, der das Open-SQL-Kommando in den jeweiligen nativen Datenbankdialekt umwandelt. Mit der Einführung von [[SAP S/4HANA|SAP S/4 HANA]] wurde Open SQL in [[ABAP SQL]] umbenannt und wird mit anderem Fokus weiterentwickelt.


== Funktionalität und Umfang ==
== Funktionalität und Umfang ==

Version vom 7. März 2019, 22:59 Uhr

Open SQL war ein proprietäres SQL-Derivat, das vom Unternehmen SAP stammte. SAP beabsichtigte damit, einen einheitlichen SQL-Dialekt für alle von SAP unterstützten Datenbanken anzubieten. Open SQL ist Bestandteil der Programmiersprache ABAP. Es gibt aber auch eine (weniger bedeutsame) Version für Java. Die Benutzung von Open SQL setzte einen SAP ABAP oder Java Application Server voraus. Außerdem mussten alle verwendeten Datenbanktabellen im SAP-eigenen Dictionary erstellt werden. Ziel von Open SQL war es, dass die verwendeten SQL-Befehle auf allen Datenbanken das gleiche Ergebnis liefern. Zu diesem Zweck enthielt der jeweilige Application Server einen eigenen SQL-Parser und einen Umsetzer, der das Open-SQL-Kommando in den jeweiligen nativen Datenbankdialekt umwandelt. Mit der Einführung von SAP S/4 HANA wurde Open SQL in ABAP SQL umbenannt und wird mit anderem Fokus weiterentwickelt.

Funktionalität und Umfang

In neueren Versionen enthält Open SQL für ABAP große Teile des SQL-92-Standards mit vielen Erweiterungen. So werden beispielsweise Arithmetische Ausdrücke, CASE ... ENDCASE, einige SQL-Funktionen und Common Table Expressions unterstützt. Durch Emulation innerhalb des Application Servers können auch Funktionen angeboten werden, die nicht alle von SAP unterstützten Datenbanken unterstützen. Ein Beispiel sind hier z. B. Streams und Lokatoren, mit denen große LOB-Felder auf der Datenbank abschnittsweise gelesen und geschrieben werden können.

Der Umfang von Open SQL für Java ist deutlich geringer.

Besonderheiten

  • Lückenlose Integration in das SAP(ABAP)-Typsystem, unabhängig vom Typsystem der Datenbank.
  • Statischer Syntaxcheck zur Compilezeit (etwa im Gegensatz zu anderen Datenbankschnittstellen, wie JDBC).
  • Dynamisches und halbdynamisches SQL (Teile des SQL Statements können dynamisch zur Laufzeit übergeben werden. Die statischen Anteile können trotzdem zur Compilezeit überprüft werden).
  • SAP eigene Erweiterungen, z. B. FOR ALL ENTRIES (Join von Datenbanktabellen mit sogenannten internen Tabellen, d. h. Variablen).
  • Tabellen können im Application Server gepuffert und dann mittels Open SQL ohne Datenbankzugriff gelesen werden. Zu diesem Zweck enthält der Application Server eine (in memory) Datenbankengine (mit stark reduziertem Umfang).

Unterstützte Datenbanken

In aktuellen SAP-Releases werden SAP HANA, Oracle, MaxDB, DB2, Microsoft SQL Server und Sybase ASE unterstützt. Historisch wurde auch Informix unterstützt.

Native SQL

Mit Native SQL bezeichnet SAP die SQL-Dialekte der zugrunde liegenden Datenbanken. Ein Beispiel wäre das SQL der Oracle-Datenbank, welches ebenso wie DB2 oder MaxDB einen anderen Sprachumfang als Open SQL besitzt. Die ABAP-Laufzeitumgebung setzt dann die Open-SQL-Kommandos in die entsprechenden Native-SQL-Kommandos um. Mittels ADBC bzw. JDBC oder AMDP (nur ABAP) können in ABAP resp. Java auch direkt Native-SQL-Kommandos abgesetzt werden.

Schlüsselwörter

Der Sprachvorrat von Open SQL besteht aus einer Untermenge der Schlüsselwörter des Standard-SQL, der mit einigen SAP-spezifischen Elementen angereichert wurde. Folgende Schlüsselwörter sind in Open SQL verwendbar:

  • SELECT, ENDSELECT
  • INSERT
  • MODIFY
  • UPDATE
  • DELETE
  • OPEN CURSOR, CLOSE CURSOR
  • FETCH
  • WITH (seit ABAP Kernel 749)

Open SQL enthält keine Kommandos der Data Definition Language. Mit Open-SQL-Methoden können keine Tabellen oder Views angelegt oder verändert werden. Dies ist nur über das ABAP bzw. Java Dictionary möglich.

Systemvariablen

Zwei Systemvariablen, die zur Rückgabe von Werten verwendet werden, werden von den Open-SQL-Kommandos unterstützt und gehören zum Sprachvorrat von Open SQL:

SY-SUBRC
Rückgabewert des zuletzt aufgerufenen Kommandos.
SY-DBCNT
Anzahl der Datensätze, die vom zuletzt aufgerufenen SQL-Kommando verarbeitet wurden.
  • Open SQL. SAP, abgerufen am 17. April 2012.