Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Routinen

SESAM/SQL unterscheidet folgende Routinen:

  • Prozeduren (Stored Procedures)

  • User Defined Functions (UDF).

In SESAM/SQL wird der Oberbegriff Routine für Prozeduren und User Defined Functions (UDFs) verwendet, wenn die Information sowohl für Prozeduren als auch für UDFs gilt.

Der Oberbegriff „SQL-invoked routine“ der SQL-Norm wird in SESAM/SQL nicht verwendet.

Dieses Kapitel beschreibt zunächst Gemeinsamkeiten und Unterschiede zwischen Prozeduren und UDFs.

Es folgen in eigenen Abschnitten die detaillierte Beschreibung von Prozeduren (Stored Procedures) und von User Defined Functions (UDFs).

Im Anschluss daran folgen Informationen zu den Themen, in denen sich Prozeduren und UDFs nicht oder nur geringfügig unterscheiden:

Gemeinsamkeiten von Routinen

In einer Routine werden Abläufe von SQL-Anweisungen in der Datenbank gespeichert und verwaltet, die später mit einem einzigen Aufruf ausgeführt werden können. Eine Routine ist vergleichbar mit einem Unterprogramm, das vollständig, also ohne Datenaustausch mit dem Anwendungsprogramm, im DBH abläuft.

Im Gegensatz zu einem Unterprogramm (in ESQL-COBOL) kann eine Routine auf verschiedenen Clients mit unterschiedlichen Programmiersprachen eingesetzt werden (z.B. über JDBC).

Über Routinen kann eine Zentralisierung und Kontrolle sämtlicher Datenbankzugriffe erreicht werden. Auch einzelne SQL-Anweisungen können auf diese Weise eingeschalt werden. Sie können dann nach dem „Baukastenprinzip“ in andere Routinen und SQL-Anweisungen eingebaut werden.

Routinen können auch zur Schreib-Erleichterung eingesetzt werden.

Der Anwendungsprogrammierer benötigt keine Kenntnis über die die Struktur der Datenbank. Die Routine kann von einem Datenbankspezialisten erstellt werden, der seinerseits (außer SQL) keine Programmierkenntnisse benötigt.

Änderungen an der Datenbankstruktur wirken sich nicht notwendigerweise auf die Anwendungsprogramme aus. Ggf. genügt eine Modifikation von Routinen. Das erneute Übersetzen und Binden von Programmen erübrigt sich in solchen Fällen.

Zur Sicherheit wird für die Ausführung nur das EXECUTE-Privileg für die jeweilige Routine benötigt. Pauschale Tabellen- und Spalten-Privilegien sind nicht mehr nötig.

Routinen werden (revisionssicher) direkt in der Datenbank abgelegt. Ein separates Management zur Verwaltung von Routinen außerhalb der Datenbank ist nicht erforderlich.

Unterschiede von Prozeduren und User Defined Functions

Prozeduren und UDFs haben einen fast identischen Funktionsumfang. In UDFs von SESAM/SQL sind aber SQL-Anweisungen zum Ändern von Daten nicht erlaubt.

Prozeduren und UDFs unterscheiden sich weiter durch die Art ihres Aufrufes und ihrer Rückkehr-Information:

  • Prozeduren werden mit der SQL-Anweisung CALL aufgerufen.
    Sie haben beliebig viele Ausgabeparameter, aber keinen Rückgabewert.

  • UDFs werden durch ihren Funktionsaufruf in einem Ausdruck aufgerufen.Sie haben genau einen Rückgabewert.

UDFs können in Views aufgerufen werden. Prozeduren können dies nicht.