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 » Ergebnisse aus Prozeduren zurückgeben

 

Mehrere Ergebnismengen von Prozeduren zurückgeben

Bevor Interactive SQL mehrere Ergebnismengen zurückgeben kann, müssen Sie diese Option auf dem Register Ergebnisse des Fensters Optionen aktiviert haben. Standardmäßig ist diese Option deaktiviert. Wenn Sie die Einstellungen ändern, wirkt sich dies bei neu eingerichteten Verbindungen (z.B. neu geöffneten Fenstern) aus.

♦  So aktivieren Sie die Funktion für mehrere Ergebnismengen (Sybase Central)
  1. Verbinden Sie sich als Benutzer mit DBA-Berechtigung mit der Datenbank.

  2. Im linken Fensterausschnitt wählen Sie die Datenbank aus und wählen Datei » Interactive SQL öffnen.

  3. Wählen Sie in Interactive SQL Extras » Optionen.

  4. Klicken Sie auf SQL Anywhere.

  5. Im Register Ergebnisse wählen Sie Alle Ergebnismengen anzeigen.

  6. Klicken Sie auf OK.

Nachdem Sie diese Option aktiviert haben, kann eine Prozedur mehr als eine Ergebnismenge an die aufrufende Umgebung zurückgeben. Wenn eine RESULT-Klausel verwendet wird, müssen die Ergebnismengen kompatibel sein: Sie müssen dieselbe Anzahl von Elementen in den SELECT-Listen haben, und alle Datentypen müssen automatisch in jene Datentypen konvertierbar sein, die in der RESULT-Liste aufgelistet sind.

Beispiel

Die folgende Prozedur listet die Namen aller Mitarbeiter, Kunden und Kontaktpersonen auf, die in der Datenbank enthalten sind:

CREATE PROCEDURE ListPeople()
RESULT ( Surname CHAR(36), GivenName CHAR(36) )
BEGIN
   SELECT Surname, GivenName
   FROM Employees;
   SELECT Surname, GivenName
   FROM Customers;
   SELECT Surname, GivenName
   FROM Contacts;
END;

Zum Testen dieser Prozedur und Anzeigen mehrerer Ergebnismengen in Interactive SQL, geben Sie im Ausschnitt für die Eingabe von SQL-Anweisungen folgende Anweisung ein:

CALL ListPeople ();