Ü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
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:
- Rekursive Prozeduraufrufe
- SQLScript Unit Tests – Das End-User Testing Framework
- Parallele Verarbeitung mit Map-Merge
- Der EXISTS- und IN-Prädikat in SQLScript, d.h. beispielsweise in einer IF/ELSE Verzweigung
- DML Anweisungen wie INSERT, UPDATE und DELETE auf Tabellenvariablen
- Dynamisches SQL als ReadOnly ausführen
- Eingebettete Funktionen in SQL Abfragen
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:
- HANA 2.0 SPS 05 – neuste Version auf on Premise Systemen
- HANA Cloud QRC 2/2020
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