带有 OracleTypes.ARRAY 的 CallableStatement registerOutParameter 耗时太长

问题描述

我们在使用 Java 8 (ojdbc8.jar) JDBC callable Statement 从 Oracle 19C 数据库中获取数据时使用 Oracle 表类型,尝试注册 out 参数大约需要 7-8 秒。

logger.info("Trying to set 12th parameter");
callableStatement.registerOutParameter(12,OracleTypes.ARRAY,"AASC_SERIAL_NUMBERS_TBL"); // taking 7-8 seconds  time
logger.info("Completed setting 12th parameter");

以下是记录类型的语法:

create or replace TYPE "AASC_SERIAL_NUMBERS_TBL" is table of AASC_SERIAL_NUMBERS_rec;
create or replace TYPE "AASC_SERIAL_NUMBERS_REC" is object
(DELIVERY_ID number,DELIVERY_DETAIL_ID number,SERIAL_CONTROL_CODE number,LOT_CONTROL_CODE number,SUBINVENTORY varchar2(200),locator varchar2(200),LOT_NUMBER varchar2(200),SERIAL_NUMBER varchar2(200),SERIAL_LIST varchar2(32767),SHIPMENT_LINE_ID NUMBER);

使用具有相同 Java 8 和 ojdbc8 驱动程序的 Oracle 12C 数据库,相同的代码耗时不到 1 秒。 我们想了解调用 registerOutParameter 时到底发生了什么,以及为什么 Oracle 19C 数据库在这个特定步骤需要时间来响应。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...