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 - Programmierung » Java in der Datenbank » Java-Unterstützung in SQL Anywhere » Besondere Funktionen von Java-Klassen in der Datenbank

 

Rückgabe von Werten aus Java über gespeicherte Prozeduren

Sie können gespeicherte Prozeduren, die mit EXTERNAL NAME LANGUAGE JAVA erstellt wurden, als Wrapper für Java-Methoden verwenden. In diesem Abschnitt wird beschrieben, wie Sie Ihre Java-Methode so schreiben, dass OUT- oder INOUT-Parameter in der gespeicherten Prozedur benutzt werden können.

Java hat keine explizite Unterstützung für INOUT- oder OUT-Parameter. Anstelle dessen können Sie ein Array des Parameters verwenden. Beispiel: Um einen Ganzzahl-OUT-Parameter zu benutzen, erstellen Sie ein Array von genau einer Ganzzahl:

public class Invoice 
{
  public static boolean testOut( int[] param )
  {
    param[0] = 123;
    return true;
  }
}

Die folgende Prozedur benutzt die testOut-Methode:

CREATE PROCEDURE testOut( OUT p INTEGER )
EXTERNAL NAME 'Invoice.testOut([I)Z'
LANGUAGE JAVA;

Die Zeichenfolge ([I)Z ist eine Java-Methodensignatur, die anzeigt, dass die Methode einen einzelnen Parameter hat, der ein Array von Ganzzahlen darstellt und einen Booleschen Wert zurückgibt. Sie müssen die Methoden so definieren, damit der Methodenparameter, den Sie als OUT- oder INOUT-Parameter verwenden wollen, ein Array eines Java-Datentyps ist, der dem SQL-Datentyp des OUT- oder INOUT-Parameters entspricht.

Um dies zu testen, rufen Sie die gespeicherte Prozedur mit einer nicht initialisierten Variablen auf.

CREATE VARIABLE zap INTEGER;
CALL testOut( zap );
SELECT zap;

Die Ergebnismenge ist 123.

Hinweise zur Syntax, einschließlich der Methodensignatur, finden Sie unter CREATE PROCEDURE-Anweisung (Webdienste).