J'ai finalement (avec un peu d'aide des autres) trouvé la réponse à cela. Il se décomposait en trois parties :
La première était que je devais utiliser un :
OracleCallableStatement stmt = (OracleCallableStatement) conn.prepareCall(query);
plutôt que le simple JDBC CallableStatement que j'essayais d'utiliser.
La deuxième partie était que je devais enregistrer mon paramètre "out" comme suit :
stmt.registerOutParameter(2, OracleTypes.STRUCT, "DATA_SUMMARY_TAB");
La troisième partie, et elle est implicite dans la partie 2 ci-dessus, était que "DATA_SUMMARY_TAB" devait être en MAJUSCULES. Si vous le mettez en minuscules, vous obtenez un message d'erreur crypté comme suit :
java.sql.SQLException: invalid name pattern: MYTEST.data_summary_tab
sur oracle.jdbc.oracore.OracleTypeADT.initMetadata(OracleTypeADT.java:553)sur oracle.jdbc.oracore.OracleTypeADT.init(OracleTypeADT.java:469)sur oracle.sql.StructDescriptor.initPickler(StructDescriptor.java:390)sur oracle.sql.StructDescriptor.(StructDescriptor.java:320)
C'est tout.
Veuillez également noter que notre type d'objet personnalisé ne figurait dans aucun package. Si c'est le cas, vous devrez peut-être modifier un peu le troisième paramètre.