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; |
Wenn Sie eine Prozedur ohne eine RESULT-Klausel erstellen und die Prozedur eine variable Ergebnismenge zurückgibt, schlägt DESCRIBE in der SELECT-Anweisung, die die Prozedur referenziert, möglicherweise fehl. Um ein Fehlschlagen von DESCRIBE zu verhindern, wird empfohlen, eine WITH-Klausel einzubeziehen, die das erwartete Schema der Ergebnismenge beschreibt.
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.
Weitere Hinweise zur DESCRIBE-Anweisung finden Sie unter DESCRIBE-Anweisung [Interactive SQL].
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.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |