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

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Gespeicherte Prozeduren und Trigger » Prozeduren, Trigger und Batches verwenden » Ergebnisse aus Prozeduren zurückgeben

 

Variable Ergebnismengen aus Prozeduren zurückgeben

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.