Rufen Sie pl / sql-Array-Rückgabewerte in Java ab

8

In Java, wie man Werte von einer pl/sql Funktion erhält, die ein Array zurückgibt.

Wenn meine pl / sql-Funktion das Array myArray zurückgibt, ist es in Java möglich, Werte abzurufen von myArray in Java-Objekte mit callablestatement ?

Danke

Aktualisieren 1

Mein Java-Code, in dem ich anrufe, funktioniert, aber ich bekomme eine Ausnahme.

%Vor%

Update 2

%Vor%

und

%Vor%

Funktion

%Vor%

Fehler behoben Update 3

%Vor%     
user75ponic 28.05.2012, 13:27
quelle

5 Antworten

3

Ich habe das nicht mit ARRAY gemacht, aber es sollte funktionieren. Zuerst müssen Sie out -Parameter Ihrer Funktion registrieren. So kann es sein.

%Vor%

Versuchen Sie diesen Mann und geben Sie mir dann an, ob es geht oder nicht.

BEARBEITEN:

Diese Zeichen ? stellen einen Parameter dar, den Sie festlegen (er wird als parametrisiert bezeichnet). Also das:

%Vor%

bedeutet, dass Sie Ihre drei Parameter (?) festlegen, der erste Parameter der Methode ist der Spaltenindex und der zweite Parameter die Daten Ihres spezifischen Typs.

EDIT 2:

Tut mir leid, ich habe eine schlechte Lösung geschrieben, die bereits aktualisiert wurde, also überprüfe jetzt den Code und probiere es aus.

    
Sajmon 28.05.2012, 13:58
quelle
1

myArray, das von PL / SQL zurückgegeben wird, hat den Typ java.sql.Array . Sie können getArray () darauf anwenden und cast it eingeben, um java array zu erhalten.

%Vor%     
Chandra Sekhar 28.05.2012 13:37
quelle
1

Ja, Sie müssen registerOutParameter vom Typ Types.ARRAY
siehe Beispiel hier

    
A.B.Cade 28.05.2012 13:41
quelle
1

Die JDBC-Spezifikation enthält einen ganzen Abschnitt (16.5) für den Umgang mit Arrays. Vielleicht möchten Sie es sehen.

    
Edwin Dalorzo 28.05.2012 13:41
quelle
1

Ich glaube, dass Sie die folgende Methode in der SerialArray-Klasse verwenden können, die ein direkter Nachkomme von java.sql.Array ist:

%Vor%

Hier ist die Map ein Halter eines Objekts und seiner Eigenschaft, die der abgerufenen Ergebnismenge im zurückgegebenen Array zugeordnet werden soll.

Weitere Einzelheiten finden Sie in C ### Javadoc

    
dharam 28.05.2012 13:42
quelle

Tags und Links