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% Ich habe das nicht mit ARRAY
gemacht, aber es sollte funktionieren. Zuerst müssen Sie out
-Parameter Ihrer Funktion registrieren. So kann es sein.
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.
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%Die JDBC-Spezifikation enthält einen ganzen Abschnitt (16.5) für den Umgang mit Arrays. Vielleicht möchten Sie es sehen.
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