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

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Gespeicherte Prozeduren und Trigger » Prozeduren, Trigger und Batches verwenden » Einführung in Prozeduren

 

Ergebnisse von Prozeduren in Ergebnismengen zurückgeben

Prozeduren können nicht nur in einzelnen Parametern Ergebnisse zurückgeben, sondern auch in Ergebnismengen. Eine Ergebnismenge ist in der Regel das Ergebnis einer Abfrage. Die folgende Prozedur gibt eine Ergebnismenge zurück, die den Lohn für jeden Mitarbeiter in einer bestimmten Abteilung enthält:

CREATE PROCEDURE SalaryList( IN department_id INT )
RESULT ( "Employee ID" INT, Salary NUMERIC(20,3) )
BEGIN
   SELECT EmployeeID, Salary
    FROM Employees
    WHERE Employees.DepartmentID = department_id;
END;

Wenn diese Prozedur aus Interactive SQL aufgerufen wird, werden die Namen in der RESULT-Klausel an die Ergebnisse der Abfrage angepasst und als Spaltentitel in den angezeigten Ergebnissen verwendet.

Um diese Prozedur in Interactive SQL zu testen, können Sie sie mit CALL aufrufen und eine Abteilung des Unternehmens eingeben. In Interactive SQL werden die Ergebnisse auf dem Register Ergebnisse im Fensterausschnitt Ergebnisse angezeigt.

Beispiel

Um die Löhne der Mitarbeiter in der Abteilung R & D (Abteilungs-ID 100) aufzurufen, gehen Sie wie folgt vor:

CALL SalaryList( 100 );
Employee ID Salary
102 45700.000
105 62000.000
160 57490.000
243 72995.000
... ...

Interactive SQL kann nur dann mehrfache Ergebnismengen zurückgeben, wenn Sie diese Option auf dem Register Ergebnisse des Dialogfelds Optionen aktiviert haben. Jede Ergebnismenge wird in einem eigenen Register des Fensterausschnitts Ergebnisse angezeigt.

Siehe auch