来自oracle.sql.struct的getAttributes()

时间:2015-07-09 05:13:59

标签: sql oracle struct plsql procedure

我有一个带有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

我希望有人能帮助我 感谢。

0 个答案:

没有答案