gpt4 book ai didi

java - Oracle 和 Jdbc 以及 OraclePreparedStatement#setPlsqlIndexTable 和 java.util.Date

转载 作者:行者123 更新时间:2023-12-01 16:09:36 27 4
gpt4 key购买 nike

我对我的 Java 环境有点沮丧,它不允许我调用方法 OraclePreparedStatement#setPlsqlIndexTable ...但我认为我应该在之前编写代码...

String plSqlBody = "some pl/sql procedure call"
/*
* The PL/SQL procedure parameter is here of type
* TYPE t_date_table IS TABLE OF DATE INDEX BY PLS_INTEGER;
*/
OracleCallableStatement ocs = (OracleCallableStatement)
conn.prepareCall(plSqlBody);
java.util.Date[] date = new java.util.Date[10];
// Initialise the array... and then...
ocs.setPlsqlIndexTable(index, date, 20, 20, OracleTypes.DATE, 20);

在这里我得到了异常(exception):

java.sql.SQLException: Ungültiger PL/SQL-Indextabellen-Elementtyp
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)

我没有找到问题的解决方案。我将 Java 类型从 java.util.Date 更改为至java.sql.Date/oracle.sql.DATEOracleTypes.DATEOracleTypes.TIME/OracleTypes.TIMESTAMP ,但没有解决任何问题。我在某处发现了提示,这些类型在这里是不允许的,但我不敢相信。你知道这里的正确方法吗?

最佳答案

来自 Oracle 文档(JDBC 开发人员指南,JDBC OCI 扩展章节):

Oracle JDBC does not support RAW, DATE, and PL/SQL RECORD as element types.

也许您可以将日期作为字符串/数字传递?

关于java - Oracle 和 Jdbc 以及 OraclePreparedStatement#setPlsqlIndexTable 和 java.util.Date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1754314/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com