Problem mit Oracle Collection

ceene

Erfahrenes Mitglied
Hallo alle zusammen

Ich habe ein kleines Problem mit meiner Anwendung. Ich möchte in meinem Programm eine PL/SQL-Prozedur aufrufen. Das habe ich auch schon öfters gemacht und es hat immer super geklappt.

Nun bekomme ich aber von der Prozedur eine Collection(Array) zurück und ich weiß nicht wie ich den Rückgabeparameter initialisieren kann. Bekomme immer die Fehlermeldung:
- ORA-06550: Zeile 1, Spalte 7: PLS-00306: Falsche Anzahl oder Typen von Argumenten in Aufruf von 'CMB_DO_HWPLZ_DATENSCHUTZ' ORA-06550: Zeile 1, Spalte 7: PL/SQL: Statement ignored

Mein Code sieht folgendermaßen aus:
Code:
try {		
			//Connection erzeugen um Package-Prozedur ausführen zu können	
			OracleDataSource ds = new OracleDataSource();
			ds.setServerName(dat.getDBip());	
			ds.setPortNumber(dat.getDBport());	
			ds.setDatabaseName(dat.getDBsid());	
			ds.setUser(dat.getDBuser());	
			ds.setPassword(dat.getDBpw());	
			ds.setDriverType("thin");					
			
			con = ds.getConnection();
			
			//Aufruf der Prozedur
			OracleCallableStatement callableStatement = (OracleCallableStatement) con.prepareCall("{" + 
					"call HWPLZ_D_DATENSCHUTZ_PKG.CMB_do_hwplz_datenschutz(?,?,?,?,?,?,?,?,?,?,?)}");				
			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, Types.ARRAY, OracleTypes.ARRAY);
			callableStatement.execute();
			.............
Ich hoffe ihr könnt mir helfen. Bin schon am verzweifeln.
 
Zurück