Java Objekte nach Oracle

Artorius

Mitglied Plutonium
Hallo!
Ich habe mir in meinem Oracle Schema (10.2.0.4) erstmal ein einfaches Objekt erstellt
Code:
CREATE OR REPLACE TYPE testList as Table of Number;
und versuche nun, aus Java per JDBC heraus ein solches Objekt an eine Stored Procedure zu übergeben.
Laut Oracle Tutorial ist dies auch ganz einfach und lässt sich das Java-Oracle Mapping folgerdermaßen lösen:
Code:
 Integer intArray[] = { 1,2,3,4,5,6 };
 ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor( "testList ", DBConnection );
ARRAY array_to_pass = new ARRAY( descriptor, DBConnection, intArray );

Leider führt dies immer zu folgender Fehlermeldung:
Code:
java.sql.SQLException: ORA-01948: Länge des Bezeichnernamens (48) überschreitet Höchstwert (30)
ORA-06512: in "SYS.DBMS_PICKLER", Zeile 18
ORA-06512: in "SYS.DBMS_PICKLER", Zeile 58
ORA-06512: in Zeile 1

Was der Fehler bedeutet ist mir eigentlich klar. Nur die Ursache verstehe ich nicht. Selbst wenn ich das Oracle Objekt beispielsweise auf 'X' umbennene, kommt exakt die gleiche Fehlermeldung mit den 48 Zeichen.
Hat vielleicht jemand eine Idee?

*grüssle*
 
Hi!
Ich habs auch schonmal mit einem Vararray probiert., ohne nun aber die Genauigkeit des Numberdatentyps anzugeben. Jetzt aber nun nochmal genau mit deiner Variante bekomme ich wieder die gleiche Fehlermeldung.

*grüssle*
 
Oh man, habe den Fehler nun gefunden.
Die Verbindungsparameter habe ich über eine Konfigurationsdatei eingelesen. Leider waren an einer Stelle noch ein paar Leerzeichen zu finden.
Beim Verbindungsaufbau, Prozeduraufrufen oder ähnliches hat er sich nicht daran gestört, das klappte einwandfrei. Nur nun beim Objektzugriff wars ihm wohl zu viel ;)

*grüssle*
 
Zurück