jdbc - CallableStatement registerOutParameter with OracleTypes.ARRAY 耗时太长
问题描述
我们在使用 Java 8 (ojdbc8.jar) JDBC 可调用语句从 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 数据库在这个特定步骤需要时间来响应。
解决方案
推荐阅读
- android - 无法从 jitpack.io 存储库中找到依赖项
- moviepy - moviepy textclip 未在 centos7 或 amazon linux 上呈现,但在 mac 上呈现完美
- php - Linux 上的 Laravel:创建新项目错误:您的需求无法解析为可安装的软件包集
- node.js - 如何在 vanilla node.js 中验证没有登录表单的用户?
- c++ - 是否有一个内置函数可以快速计算一个 int 占用多少位?
- android - 服务中的搜索栏更新
- airflow - Airflow Papermill 操作员:60 分钟后外部跳过的任务
- sql - django mssql密码未被确认
- point-cloud-library - 如何用 PCL(C++)中的点“填充”凸包
- office-scripts - 使用 Excel Office 脚本创建循环以重命名工作簿中的所有工作表