Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Gespeicherte Prozeduren, Trigger, Batches und benutzerdefinierte Funktionen » Ergebnismengen

 

Variable Ergebnismengen für Prozeduren

Die RESULT-Klausel ist bei Prozeduren optional. Wenn Sie die RESULT-Klausel auslassen, können Sie Prozeduren schreiben, die je nach Art ihrer Ausführung unterschiedliche Ergebnismengen mit unterschiedlichen Anzahlen oder Typen von Spalten zurückgeben.

Wenn Sie die Funktion der variablen Ergebnismengen nicht benutzen, sollten Sie aus Performancegründen eine RESULT-Klausel programmieren.

Beispiel: Die folgende Prozedur gibt zwei Spalten zurück, wenn die Eingabevariable Y ist, sonst nur eine:



CREATE PROCEDURE Names( IN formal char(1) )
BEGIN
   IF formal = 'y' THEN
      SELECT Surname, GivenName
      FROM Employees
   ELSE
      SELECT GivenName
      FROM Employees
   END IF
END;

Die Verwendung von variablen Ergebnismengen in Prozeduren unterliegt je nach der Schnittstelle, die von der Clientanwendung benutzt wird, bestimmten Beschränkungen.

  • Embedded SQL   Um die richtige Form der Ergebnismenge zu erhalten, müssen Sie mit DESCRIBE den Prozeduraufruf beschreiben, nachdem der Cursor für die Ergebnismenge geöffnet wurde, aber bevor Zeilen zurückgegeben werden.

    Wenn Sie eine Prozedur ohne RESULT-Klausel erstellen und die Prozedur eine variable Ergebnismenge zurückgibt, kann ein DESCRIBE einer SELECT-Anweisung mit Verweis auf die Prozedur fehlschlagen. Um das Fehlschlagen des DESCRIBE-Vorgangs zu verhindern, ist es empfehlenswert, eine WITH-Klausel in die FROM-Klausel der SELECT-Anweisung einzubeziehen. Alternativ können Sie die WITH VARIABLE RESULT-Klausel in der DESCRIBE-Anweisung verwenden. Mithilfe der WITH VARIABLE RESULT-Klausel kann ermittelt werden, ob der Prozeduraufruf nach jeder OPEN-Anweisung beschrieben werden sollte.

  • ODBC   Prozeduren mit variablen Ergebnismengen können von ODBC-Anwendungen verwendet werden. Der SQL Anywhere ODBC-Treiber führt die richtige Beschreibung der variablen Ergebnismengen aus.

  • Open Client-Anwendungen   Open Client-Anwendungen können Prozeduren mit variablen Ergebnismengen verwenden. SQL Anywhere führt die richtige Beschreibung der variablen Ergebnismengen aus.

 Siehe auch