J'utilise WLS 12.1.3 et Oracle est 10.2.0, j'utilise datasource weblogic pour obtenir une connexion Ce code,De WLS - objet connexion Datasource Types.ARRAY ne fonctionne pas
CallableStatement cst = null;
try {
cst = conn
.prepareCall("{call myProc(?,?,?,?,?,?,?,?)}");
final String typeTableName = "studentdetails";
cst.setInt(1, student.getEmpid());
cst.setInt(2, student.getOrgid());
cst.setInt(3, student.getYearid());
cst.setString(4, student.getClassType());
cst.setInt(5, student.getStudentid());
cst.registerOutParameter(6, Types.ARRAY, typeTableName);
cst.registerOutParameter(7, java.sql.Types.VARCHAR);
cst.registerOutParameter(8, java.sql.Types.VARCHAR);
long startTime=System.currentTimeMillis();
cst.execute();
String dat=cst.getString(7);
//Array arr = cst.getArray(6);
long endTime=System.currentTimeMillis();
if (null != cst.getObject(6)) {
data = (Object[]) ((Array) cst.getObject(6)).getArray();
}
Ceci est l'objet de connexion et déclaration appelable obj
cst = (weblogic.jdbc.wrapper.CallableStatement_oracle_jdbc_driver_OracleCallableStatementWrapper) weblogic.jdbc.wrapper.Call[email protected]53
conn = (weblogic.jdbc.wrapper.JTAConnection_weblogic_jdbc_wrapper_XAConnection_oracle_jdbc_driver_LogicalConnection) [weblogic.jdbc.wrapper.JTAConnection_weblogic_jdbc_wrapper_XAConnection_oracle_jdbc_driver_LogicalConnection-XMLJDBC_Data_Source-1-3, [email protected]]
Si je datasource, je reçois cst.getObject (6) comme nulle, mais si on utilise une connexion normale jdbc je me fais l'objet. S'il vous plaît suggérer comment résoudre ce problème
Obtenir cette exception « ERREUR: get_item_uda_data: ORA-02089: COMMIT n'a pas le droit à une exception de la session subordonnée de la procédure »
La source de données et le pilote utilisent-ils le même pilote (et la même version)? Est-ce qu'un mince et l'autre OCI, peut-être? (Je devine juste ...) –
J'utilise ce nom de classe de pilote: oracle.jdbc.xa.client.OracleXADataSource dans le serveur Weblogic et essayant d'obtenir la connexion à partir de la source de données. Toutes les requêtes et procédures DML/DDL fonctionnent correctement, mais pas avec cst.registerOutParameter (6, Types.ARRAY, typeTableName); collection en tant que paramètre – user3428736
ERROR: get_item_uda_data: ORA-02089: COMMIT n'est pas autorisé dans un subordonné exception de session de la procédure – user3428736