使用ArrayDescriptor在Java中创建Oracle ARRAY类型时出现问题 [英] Issue while creating Oracle ARRAY Type in java using ArrayDescriptor

查看:714
本文介绍了使用ArrayDescriptor在Java中创建Oracle ARRAY类型时出现问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我与oracle直接建立连接,则代码运行正常.
但是,如果我通过Websphere中配置的数据源连接到数据库,则会收到以下异常:-

If I am making a direct connection with oracle, the code is working fine.
But If I am connecting to database through datasource configured in Websphere, receiving below exception:-

java.sql.SQLException:DSRA9122E: com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@21cf8d56不包装任何内容 oracle.jdbc.driver.OracleConnection类型的对象.

java.sql.SQLException: DSRA9122E: com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@21cf8d56 does not wrap any objects of type oracle.jdbc.driver.OracleConnection.

引发此异常的代码如下:-

Code that is throwing this exception is below:-

ArrayDescriptor desc = ArrayDescriptor.createDescriptor(PROC_IN_PARAM_ALIAS, jdbcTemplate.getDataSource().getConnection()
                .unwrap(OracleConnection.class));

推荐答案

您的错误说明了一切-

com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@21cf8d56 不包装任何类型为oracle.jdbc.driver.OracleConnection的对象.

createDescriptor()方法采用两个参数

createDescriptor() method takes two parameter

1.存储过程名称 2. oracle.jdbc.driver.OracleConnection类型的对象

1.Stored procedure name 2.An object of type oracle.jdbc.driver.OracleConnection

ArrayDescriptor.createDescriptor("Proc Name", oracleConnection);

jdbcTemplate.getDataSource().getConnection()方法不会返回oracle.jdbc.driver.OracleConnection类型的对象,并且在尝试对其进行拆包时,会引发错误.

jdbcTemplate.getDataSource().getConnection() methods does not returns object of type oracle.jdbc.driver.OracleConnection and while you are trying to unwrap it, it's throwing error.

您需要执行以下操作

1.在配置文件中添加以下提到的条目.

1.Add below mentioned entry in your configuration file.

<beans:property name="accessToUnderlyingConnectionAllowed" value="true"/>

2. 转换 java.sql.Connectionoracle.jdbc.OracleConnection,并在createDescriptor()方法中使用该连接对象创建oracle.sql.ArrayDescriptor对象.

2.Convert java.sql.Connection to oracle.jdbc.OracleConnection and use that connection object in createDescriptor() method to create your oracle.sql.ArrayDescriptor object.

这篇关于使用ArrayDescriptor在Java中创建Oracle ARRAY类型时出现问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆