我有一个带有3个参数的oracle.sql过程(1英寸,2英寸)。所有这些都是海关记录集(Type Object)
我的问题是在对象[]中获取struct属性。如果我尝试这个,我将得到以下异常。
java.sql.SQLException:Interner Fehler:Image是一个集合 图像,期待ADT
try
{
Class.forName("oracle.jdbc.OracleDriver");
Context contextEnv = (Context) new InitialContext().lookup("java:/comp/env");
DataSource dataSource = (DataSource) contextEnv.lookup("jdbc/uvs/kpz_web");
Connection connectionDB = dataSource.getConnection();
Struct recMitglied = connectionDB.createStruct("KPZ.RECTYPE_MITGLIED",new Object[] {mitglied.ID,mitglied.VID,mitglied.MNr,mitglied.BNr,mitglied.NameFirma1,mitglied.NameFirma2,mitglied.NameFirma3,mitglied.Strasse,mitglied.HausNr,mitglied.PLZ,mitglied.Ort,mitglied.Telefon,mitglied.Email,mitglied.statusKurz});
CallableStatement cs;
cs = connectionDB.prepareCall("BEGIN KPZ.PCK_MITGLIED.PRC_LESE_MITGL_ADRESSE(?,?,?); END;");
cs.setObject(1, recMitglied);
cs.registerOutParameter(2, Types.STRUCT,"KPZ.RECTYPE_TECHINFOS");
cs.registerOutParameter(3, Types.STRUCT,"KPZ.TABTYPE_MITGLIED");
cs.execute();
STRUCT output_oracle_record = (oracle.sql.STRUCT)cs.getObject(3);
System.out.println("SQL-Object type: " + output_oracle_record.getSQLTypeName());
Object[] return_record_array = output_oracle_record.getOracleAttributes();
cs.close();
connectionDB.close();
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
控制台
SQL-Object类型:KPZ.TABTYPE_MITGLIED java.sql.SQLException:Interner Fehler:图像是一个集合图像,期待ADT
我希望有人能帮助我 感谢。