SQLScript – der SQL Dialekt der SAP HANA

Übersicht über SQLScript

SQLScript ist eine Programmiersprache, die eine Erweiterung des SQL Standards durch die SAP darstellt. Diese Sprache wurde entwickelt, um die Ausführung komplexer Geschäftslogik vom Anwendungsserver auf die SAP HANA Datenbank zu verlagern.

Damit ist die Sprache SQLScript vergleichbar mit den Erweiterungen anderer Datenbankhersteller, wie zum Beispiel PL/SQL von Oracle oder SQL PL von IBM. Alle diese Erweiterungen ermöglichen es das eine Abfolge von SQL-Anweisungenauf dem Datebankserver in Form von Prozeduren oder Funktionen gespeichert wird.Diese können dann mit einem einzelnen Aufruf vom Anwendungsserver gestartet werden.Im Gegensatz zu einzelnen SELECT-Abfragen, können die Prozeduraufrufe auchmehrere Ergbnismengen (Result Sets) zurückliefern.

Die Verlagerung von komplexen Abfragen mittels SQLScript auf den Datebankserver bringt erhebliche Vorteile bei der Ausführung. Zum Beispiel erlaubt die deklarative Formulierung der Abfragen in SQL eine massive Optimierung und Parallelisierung der Ausführung. Im Gegensatz dazu lässt eine imperative, datensatzweisen Programmierung auf dem Applikationsserver eine solche Optimierung nicht zu.

Ressourcen zu SQLScript

Die Referenzdokumentation der SAP ist auf jeden Fall die umfangreichste und wichtigste Quelle in dem Bereich. Hierin wird zwischen HANA SQL und SQLScript unterschieden, siehe auch weiter unten.

SAP HANA Cloud QRC 02/2020

SAP HANA Cloud SQLScript Reference

SAP HANA 2.0 SPS05

SAP HANA SQLScript Reference
SAP HANA SQL and System Views Reference

Der große Spickzettel zu SQLScript

Blog Artikel zu SQLScript

Cheat Sheet – Die SQLScript Übersicht

Die Cheat Sheet ist eine große SQLScript Übersicht über die wichtigsten Grundlagen. Alles an einem Platz, mit Links zu der Referenzdokumentation.

Das AMDP Framework

Das AMDP Framework liefert einen einfachen Weg, mit dem Datenbankprozeduren in SQLScript in ABAP Programmen und BW-Transformationsroutinen genutzt werden können. Ein Auszug aus der 2.…

AMDP-Prozeduren

Mit AMDP-Prozeduren kann im ABAP ganz einfach und elegant komplexere Anforderungen in der SAP HANA Datenbank auslagern. Ein Auszug aus der 2. Auflage meines Buches „SQLScript…

AMDP Debugging in Transformationsroutinen

Mit AMDP Debugging in Transformationsroutinen im BW/4HANA können Fehler leicht gefunden werden. Ein Auszug aus der 2. Auflage meines Buches „SQLScript für SAP HANA“, erschienen…

Warum sind skalare UDFs so langsam?

Beim Laden von Daten aus Quellsystemen gibt es im SAP BW Anforderungen, die sich auf Feldebene häufig wiederholen. Dazu gehören vor allem Logiken zum Bereinigen…

Erster SQLScript Videokurs verfügbar

Seit Anfang August ist auf unserer Seite www.brandeis-training.de der erste Videokurs „SQLScript Grundlagen“ verfügbar. Dieser Videokurs ist als vollwertige Schulung konzipiert und entspricht Inhaltlich meinen…

DML Tabellenvariablen in SQLScript

Mit dem Konzept der DML Tabellenvariablen hat die SAP die bisherigen Konzepte zum ändernden Zugriff auf Tabellenvariablen in SQLScript sinnvoll Ergänzt. Der Indexbasierte Zugriff und die Änderungsoperatoren…

Online Training: Window Functions in SQLScript

Online Seminar: Window Functions in SQLScript Dieses Seminar wird am Freitag, 27.März um 14:00Uhr live, kostenlos und in Farbe durchgeführt. Wenn Sie sich rechts Anmelden,…

Webinar SQLScript Online Seminare

Webinar: SQLScript Online Seminare – Di, 24.März 2020 um 14:00Uhr Auf Grund der aktuellen Lage sind Präsenzschulungen leider nicht mehr möglich. Als Alternative bieten sich…
Logo Tech Night

4. HANA Tech Night am 10.2.2020

Im Februar ist es wieder soweit. Am Vorabend der DSAG Technologietage 2020 findet die 4. HANA Tech Night hier in Mannheim statt. Wir konnten für diese…

Parallele Verarbeitung mit MAP_MERGE

Mit der Version 2.0 der SAP-HANA-Datenbank ist noch ein nützlicher Operator in SQLScript für deklarativen Code hinzugekommen: MAP_MERGE. Mit ihm lässt sich das gelegentlich vorkommende…

User Defined Libraries (UDL) in SQLScript

Mit SAP HANA 2.0 SPS03  wurde das Konzept der benutzerdefinierten Bibliotheken (User Defined Libraries – UDL) in SQLScript eingeführt. Es ermöglicht uns als Entwickler, mehrere…

Rekursive Prozeduraufrufe in SQLScript

Bis SAP HANA 2.0 SPS03 waren rekursive Aufrufe Prozeduren in SQLScript nicht erlaubt. Das bedeutet, dass sich eine Prozedur weder direkt noch indirekt über andere Prozeduren…
Webinar AMDP

Webinar: SQLScript & AMDP im SAP BW

Webinar: SQLScript und AMDP im SAP BW Das Webinar hat am 13.9.2019 live online stattgefunden. Nutzen Sie bereits ein SAP BW on HANA oder SAP…

Übersetzung meines Buchs geplant

Ich bin momentan mit dem amerkikanischen Ableger des Rheinwerkverlags in Kontakt wegen einer Übersetzung meines Buches. Zuerst wurde ich gefragt, ob ich das vielleicht selber…

 

Neuigkeiten und Updates zu SQLScript

Die Unterschiede zwischen SQLScript von SAP HANA Cloud und HANA 2.0 SPS04 werden in diesem Blogpost beschrieben:
Ist das SQLScript der SAP HANA Cloud kompatibel mit den Vorgängern?

In dem Dokument What’s New in the SAP HANA Platform 2.0 finden sich die Änderungen zu jedem Support Package Level der 2.0. Ein paar neue Features von SQLScript im SPS04, die ich zum Teil in meinem Blog behandelt habe, sind zum Beispiel:

Versionen von SQLScript

Mit jeder neuen Version von der SAP HANA entwickelt sich momentan die Sprache weiter. Entsprechend muss man auch bei den Dokumentationen immer darauf achten, dass man die richtige Version vor sich hat. Insbesondere gibt es eine Unterscheidung zwischen On Premise versionen und der SAP HANA Cloud. Die aktuellsten Versionen sind:

Und was ist SQLScript?

SQLScript ist eine Programmiersprache, die eine Erweiterung des SQL Standards durch die SAP darstellt. Diese Sprache wurde entwickelt, um die Ausführung komplexer Geschäftslogik vom Anwendungsserver auf die SAP HANA Datenbank zu verlagern.

Damit ist die Sprache SQLScript vergleichbar mit den Erweiterungenanderer Datenbankhersteller, wie zum Beispiel PL/SQL von Oracle oder SQL PL von IBM. Alle diese Erweiterungen ermöglichen es das eine Abfolge von SQL-Anweisungenauf dem Datebankserver in Form von Prozeduren oder Funktionen gespeichert wird. Diese können dann mit einem einzelnen Aufruf vom Anwendungsserver gestartet werden.Im Gegensatz zu einzelnen SELECT-Abfragen, können die Prozeduraufrufe auchmehrere Ergbnismengen (Result Sets) zurückliefern.

Die Verlagerung von komplexen Abfragen auf den Datebankserver bringt erhebliche Vorteile bei der Ausführung. Zum Beispiel erlaubt die deklarative Formulierung der Abfragen in SQL eine massive Optimierung und Parallelisierung der Ausführung. Im Gegensatz dazu lässt eine imperative, datensatzweisen Programmierung auf dem Applikationsserver eine solche Optimierung nicht zu.

Trotzdem sind auch imperative Elemente Bestandteil der Programmiersprache SQLScript. Dies erlaubt die Programmierung von Algorithmen und Ablauflogik in Prozeduren. Auch eine Mischung von imperativer und deklarativer Logik ist möglich, wobei hier die Optimierung und Parallelisierung nur begrenzt möglich ist.

Mit dem AMDP Framework hat die SAP eine fast nahtlose Integration von Datenbankprozeduren in die Sprache ABAP geschaffen. Dieses ermöglicht, im ABAP Quelltext direkt Datenbankprozeduren und -Funktionen zu definieren, zu implementieren und aufzurufen. Damit kann man als ABAP Entwickler ohne direkten Zugang zur SAP HANA Datenbank die Vorzüge von SQLScript und der optimierten Ausführung nutzen.

 

This post is also available in: English