Object-Variable

ceene

Erfahrenes Mitglied
Hallo ihr lieben

Ich habe da mal eine Frage zu einer Object-Variable.
Wie kann ich eine Object-Variable in eine Klasse mappen?

Ich löse eine PL/SQL-Funktion aus die eine Collection zurückliefert. Es ist auch alles soweit ok, nur das ich am Ende mit das Ergebniss mit "getArray" in eine Object-Variable schreibe und nun weiß ich nicht wie ich dort an die Daten komme.

Mein Code bis jetzt
Code:
//Aufruf der Prozedur
			OracleCallableStatement callableStatement = (OracleCallableStatement) con.prepareCall("{" + 
					"call HWPLZ_D_DATENSCHUTZ_PKG.CMB_do_hwplz_datenschutz(?,?,?,?,?,?,?,?,?,?,?)}");	
			
			//Array-Beschreibung
			ArrayDescriptor arraydesc = ArrayDescriptor.createDescriptor("HWPLZAUSGABE_D",con);
			HWPLZAusgabe[] test = null;
			oracle.sql.ARRAY array = new ARRAY(arraydesc,con, test);			
			callableStatement.setString(1, "D");
			callableStatement.setString(2, "00000000000000000000");
			callableStatement.setString(3, getPlz());
			callableStatement.setString(4, getOrt());
			callableStatement.setString(5, "");
			callableStatement.setString(6, getStrasse());
			callableStatement.setString(7, getHsnr());
			callableStatement.setString(8, "");
			callableStatement.registerOutParameter(9, Types.INTEGER);
			callableStatement.registerOutParameter(10, Types.INTEGER);									
			callableStatement.registerOutParameter(11, OracleTypes.ARRAY, "HWPLZAUSGABE_D");
			callableStatement.execute();

array = callableStatement.getARRAY(11);				
Object r = array.getArray();

Wie komme ich jetzt an die Werte von r?
 
Schonmal probiert das Object in ein Array zu casten (oder vielleicht allgemein in eine Collection)?
Ich kenn mich mit PL/SQl nicht aus und weiß auch nicht genau was du zurückbekommst.
 
Casten geht leider nicht. Kommt die Meldung das er Object nicht casten kann.

Bin auch ratlos.
 
Ok wenn ich versuche eine Map zu erstellen bekomme ich immer den Fehler das er keinen ClassLoader finden kann.
Wie kommt der Fehler zu stande?

Code:
array = callableStatement.getARRAY(11);
Map map = con.getTypeMap();
map.put("STRUCT", Class.forName("HWPLZAusgabe"));
Object[] r = (Object[]) array.getArray();
				
//strassenCode = r.;   
				
con.close();

Beim markierten Teil tritt immer der Fehler mit dem ClassLoader auf.
 
:)
Ja mit er meine ich den Compiler bzw die Console von JBoss. Ich hab es jetzt soweit gefixt, dass es keinen Fehler mehr gibt.
Allerdings habe ich immer noch das Problem das ich nicht weiß wie ich an die Werte in "r" komme.

Wie muss ich das denn Casten das ich da dran komme?

Code:
   array = callableStatement.getARRAY(11);
   Map map = con.getTypeMap();
   map.put("STRUCT", Class.forName("src.klassen.HWPLZAusgabe"));
   con.setTypeMap(map);
   Object[] r = (Object[])array.getArray(map);
 

Neue Beiträge

Zurück