Schnelleinstieg in SQLScript für SAP HANA

Dieses Buch ist Ihr Einstieg in die SAP-Welt von SQLScript! Der Autor zeigt Ihnen Prozeduren, Funktionen und Calculation Views, beispielsweise zur Beschleunigung von BW-Transformationen oder auch für virtuelles Staging von SAP-BW-Daten. Sie lernen die komplette HANA-SQLScript-Syntax von einfachen bis hin zu fortgeschrittenen Anweisungen kennen und wie Sie damit Prozesse beschleunigen, vereinfachen und auch monitoren.

Leseprobe:

Dieses Buch richtet sich an Projektleiter, die gerne in groben Zügen verstehen möchten, was genau in den implementierten Prozessen geschieht oder wie man diese verbessern kann. Entwickler wiederum lernen hier die SQLScript-Funktionalitäten kennen, mit denen sie eine effiziente HANA-Entwicklung betreiben können.

Das erwartet Sie im Buch

Dieses Buch beschreibt, wie man SQLScript im Alltag einsetzen kann, um z.B. BW-Transformationen zu beschleunigen, eine Migration von ABAP-basierten auf AMDP-basierte Routinen zu ermöglichen oder komplett neue Wege zu beschreiten, beispielsweise mit virtuellem Staging von SAP-BW-Daten durch HANA Table Functions. SQLScript hilft Ihnen aber nicht nur im BW- oder BW/4HANA-Umfeld. Fast alle Scriptbeispiele in diesem Buch sind auch im ECC und insbesondere unter SAP S/4HANA nutzbar.

Ich werde Sie durch die Syntax von HANA SQLScript führen: von einfachen bis zu fortgeschrittenen Anweisungen. Dabei werden Sie lernen, wie Sie mit SQLScript Prozesse beschleunigen, vereinfachen (etwa in SAP BW) oder Szenarien implementieren, die vor der Einführung von HANA aufgrund von zu hohen Laufzeiten in früheren Datenbanken unmöglich waren.

1.2 Definition von SQL

Die Structured Query Language, kurz SQL, ist eine standardisierte Programmierungssprache zur Definition von Objekten (wie z.B. Tabellen) in einer Datenbank. Diese Objektdefinition bzw. deren Abfrage kann je nach Anforderung einfach oder komplex sein. Außerdem lassen sich mittels SQL Daten abfragen oder andere Objekte wie Views oder Prozeduren anlegen. SQL kann zusätzlich zu den Datenabfragen Objekte direkt definieren und die Abfragen anhand von SQLScript komplex erweitern.

Wenn Sie SQL in einem HANA-basierten SAP-System aufrufen, finden Sie in der Regel bereits eine Vielzahl an Tabellen vor, die durch die SAP definiert und ausgeliefert wurden.

Manchmal ist es trotz der enormen Leistungsfähigkeit von HANA durchaus sinnvoll, neue Tabellen anzulegen, um bestimmte Daten mittels SQL, wenn auch nur temporär, zwischenzuspeichern. Dies kann dazu dienen, die Performance zu erhöhen und bestimmte Prozeduren lesbarer zu halten. Daher sollte Ihnen das Anlegen und Löschen von Tabellen ebenfalls bekannt sein. Dieses Buch wird Sie dabei Schritt für Schritt unterstützen.

1.3 Definition von SQLScript

Abbildung 1.1 zeigt eine vereinfachte Darstellung der Definition von HANA SQLScript. Wie Sie erkennen können, erweitert SQLScript die Sprache SQL sowohl um die von Ihnen erstellten funktionalen Ergänzungen, wie eigene Prozeduren oder Funktionen, als auch um die Verwendung von Schleifen oder komplexen Logiken zur Steuerung des Ablaufs (IF … THEN … etc.).

Abbildung 1.1: Funktionalität von HANA SQLScript

Ein wesentlicher Unterschied zwischen reinem SQL, bei dem ein Datumsfeld nach Selektion im zweiten Schritt mittels SELECT DATE FROM TABLE XYZ umgerechnet werden muss, und SQLScript ist, dass Letzteres diese Vereinfachungen der Syntax sowie eine gewisse Funktionalität bereits beinhaltet.

So kann z.B. über <code>SELECT CURRENT_UTCDATE FROM DUMMY</code> die automatische Rückgabe des UTC-Datums (Greenwich Mean Time) abgefragt oder alternativ mit Offsets wie +1, wodurch eine Stunde auf das Datum addiert wird, gearbeitet werden.

Die DB kann automatisch auf die gesetzten Vorgaben reagieren und so beispielsweise bei der Ermittlung eines Datums die Verschiebung der Zeitzonen berücksichtigen. Dabei werden alle notwendigen Additionen und Subtraktionen sowie die Verschiebung des Datums von der Datenbank übernommen. Eine Abfrage an die Datenbank, um eine bestimmte Funktionalität wie die Anonymisierung von Daten zu nutzen, müssen Sie nicht »von Hand« programmieren, sondern können diese mit SQLScript direkt aufrufen (ähnlich dem Aufruf von Funktionen/Prozeduren, die später noch erläutert werden).

SQLScript soll Sie in die Lage versetzen, auch komplexe DB-Funktionalitäten mit wenigen Zeilen Code aufzurufen und auszuführen.

Ein weiterer Unterschied zum klassischen SQL ist, dass SQLScript Parameter für Filterungen und Einschränkungen der Daten unterstützt.

3 Debugging von SQLScript

In allen Entwicklungssprachen ist es notwendig, komplexe Prozeduren und bestimmte darin enthaltene Funktionen vor ihrer Verwendung zu testen, so auch in SQLScript. Sowohl SQLScript als auch HANA Studio bieten daher Möglichkeiten des Debuggings an, die im folgenden Kapitel betrachtet werden.

Grundlegende Fehler im Bereich SQLScript werden sofort nach Ausführung eines Kommandos angezeigt und fehlerhafte Prozeduren oder Funktionen können in der Syntax gar nicht erst aktiviert oder angelegt werden.

Da die Syntax also bereits evaluiert wurde, ist besonders die fachliche Überprüfung von syntaktisch korrekten Prozeduren oder Funktionen vor einem produktiven Einsatz essenziell. Das ist jedoch vor allem bei komplexen Prozeduren in der normalen SQLScript-Konsole nicht möglich, da keinerlei Einzelschritte, sondern nur das Gesamtergebnis dargestellt wird. Erst beim Testen im Debug-Modus kann kontrolliert werden, ob eine Berechnung in einem Teilschritt korrekt und zuverlässig erfolgen wird.

Das Debuggen von Fehlern oder das Testen der gerade erstellten SQLScript-Funktionalität wird in der Perspektive »Debug« ausgeführt.

Im Folgenden werde ich Ihnen dies am Beispiel einer Prozedur veranschaulichen.

3.1 Anlegen einer Demoprozedur für einen Debug-Test

Im ersten Schritt legen Sie einen Tabellentyp an (siehe Listing 3.1). Dieser Tabellentyp kann später in der Deklaration der Prozedur genutzt werden. Alternativ kann man die Rückgabe als Tabelle direkt in der Prozedur definieren.

<pre> --Hinweis: OHNE Angabe eines Schemas wird das folgende Beispiel in Ihrem persönlichen Schema angelegt (Default der HANA)

-- Step1 --Definition eines Tabellentyps für den Aufruf der Prozedur in Step2

 create type tt_products as table (
 PID integer,
 SUBTYPE nvarchar(20),
 TEXT nvarchar(200)
 );

-- Step2 --Definition einer Prozedur zum Auslesen aus der PRODUCT-Tabelle via Tabellentyp (Step1)

CREATE PROCEDURE get_products ( in im_color nvarchar(20), out ex_products tt_products ) LANGUAGE SQLSCRIPT SQL SECURITY INVOKER READS SQL DATA AS BEGIN --Logik der Prozedur ex_products = select "PID", "SUBTYPE", "TEXT" from "PRODUCT" where "COLOR" like im_color;

           END;

--Aufruf der Prozedur für Rückgabe der Werte je Eingangsparameter call get_products ('Rot',?) </pre>

Themen

  • SAP
  • SQL
  • SQLScript
  • Script
  • HANA

Für den Newsletter anmelden und nie mehr Neuerungen verpassen!

Als Dank erhalten Sie 10% Rabatt auf eine Einze-Jahreslizenz für unsere SAP-Lernplattform.1

* Pflichtfelder

1. Einmalig und nur für Neukunden. Der Gutschein ist nicht mit anderen Aktionen kombinierbar und nur bei Espresso Tutorials GmbH einlösbar.

Über uns

In unseren Printbüchern und E-Books servieren wir SAP-Wissen wie einen Espresso: Auf das Wesentliche – angereichert mit konkreten Fallbeispielsen und Videos.

Schlagwörter

  • Analysis
  • Analysis Office
  • Analytics
  • Analyzer
  • Berechtigung
  • BEx
  • BI
  • BPC
  • BusinessObjects
  • BW
  • Cloud
  • Design Studio
  • Einstieg
  • HANA
  • Lumira
  • Performance
  • Web Intelligence
  • SAP
  • SAPUI5
  • S/4HANA
  • SAP Fiori
  • ABAP

© 2011 - 2025 Espresso Tutorials