问题描述
我们在使用 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 (将#修改为@)