die Weitergabe von komplexen java-Klasse, um pl/sql-Funktion
oracle-Entwickler geschaffen, Ihre API - PL/SQL-Funktion RECORD als argument. Das Problem ist, dass es aus anderen Aufzeichnungen, die Referenz-Tabelle der Datensätze ..
create or replace TYPE QR_OS_REC AS OBJECT (
ICO VARCHAR2(8),
OS05 DATE,
OS09 QR_TAB,
CONSTRUCTOR FUNCTION QR_OS_REC RETURN SELF AS RESULT,
MEMBER FUNCTION validuj RETURN PLS_INTEGER
);
Brauche ich eine Funktion aufrufen, die mit solchen IN-parameter von EJB. Ich lese viele tutorials, aber Sie alle Adressen Bohnen mit skalaren Eigenschaften. Was soll ich tun mit OS09 von QR_TAB geben?
Danke
Edit1:
Ich habe versucht, verschachtelte STRUKTUR mit StructDescriptor, aber es schlägt fehl, während der zweite STRUCT-Initialisierung (sorry für die verschiedenen Arten als die oben genannten Beispiel)
StructDescriptor keywordStructDesc = StructDescriptor.createDescriptor("SCHEMA.KEYWORD_REC", conn);
Object[] keywordAttribs = new Object[1];
keywordAttribs[0] = record.getKeyword();
StructDescriptor osobaStructDesc = StructDescriptor.createDescriptor("SCHEMA.PERSON_REC", conn);
Object[] osobaAttribs = new Object[5];
osobaAttribs[0] = record.getName();
osobaAttribs[1] = record.getSurname();
osobaAttribs[2] = record.getAge();
osobaAttribs[3] = record.isVip();
osobaAttribs[4] = new STRUCT(keywordStructDesc, conn, keywordAttribs);
STRUCT struct = new STRUCT(osobaStructDesc, conn, osobaAttribs);
java.sql.SQLException: Inconsistent java and sql object types
at oracle.sql.StructDescriptor.toOracleArray(StructDescriptor.java:711)
at oracle.sql.StructDescriptor.toArray(StructDescriptor.java:1298)
at oracle.sql.STRUCT.<init>(STRUCT.java:167)
EDIT 2:
Sollte ich bestanden haben die Inhalte des Objekts statt das Objekt selbst.
>> keywordAttribs[0] = record.getKeyword();
<< keywordAttribs[0] = record.getKeyword().getValue();
Funktioniert es jetzt.
- mögliche Duplikate von pass-Objekt von Java in Oracle-Prozedur
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, das problem ist gelöst. Ich beschrieb es mit source-code-Beispiele in meinem blog: http://www.literak.cz/2013/08/working-with-complex-database-types-in-weblogic/