SESAM/SQL unterscheidet folgende Routinen:
Prozeduren (Stored Procedures)
User Defined Functions (UDF).
Der Oberbegriff „SQL-invoked routine“ der SQL-Norm wird in SESAM/SQL nicht verwendet.
In einer Routine werden Abläufe von SQL-Anweisungen in der Datenbank gespeichert, 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.
Der Text einer Routine ist in SESAM/SQL vollständig in der Programmiersprache SQL geschrieben.
Neben den üblichen DML-Anweisungen kann eine Routine auch lokale Definitions-, Kontroll- und Diagnoseanweisungen enthalten. Definitionsanweisungen definieren lokale Daten und Cursor und legen spezielle Fehlerbehandlungen fest. Kontrollanweisungen steuern den Ablauf der Routine, z.B. durch Laufschleifen oder Bedingungen. Diagnoseanweisungen stellen Informationen zu einem möglicherweise fehlerhaften Verlauf der Routine bereit.
Zur Ausführung einer Routine wird das EXECUTE-Privileg benötigt.
Informationen über Routinen werden in den Informationsschemata bereitgestellt.
Prozeduren können mit Ein- und Ausgabeparametern definiert werden. Eingabeparameter werden beim Prozeduraufruf durch Argumente versorgt. Ausgabewerte werden von der Prozedur an vorgegebenen Ablageorten abgelegt.Eine Prozedur wird mit CREATE PROCEDURE erzeugt, mit der SQL-Anweisung CALL ausgeführt und mit DROP PROCEDURE gelöscht.
UDFs können mit Eingabeparametern definiert werden. Eingabeparameter werden beim Funktionsaufruf in einem Ausdruck durch Argumente versorgt. UDFs haben genau einen Rückgabewert (SQL-Anweisung RETURN). Eine UDF wird mit CREATE FUNCTION erzeugt, durch einen Funktionsaufruf ausgeführt und mit DROP FUNCTION gelöscht.