gpt4 book ai didi

java - PreparedStatement.getParameterMetaData() 在 sql-string 中有注释和参数时抛出 ArrayIndexOutOfBoundsException

转载 作者:搜寻专家 更新时间:2023-10-30 23:02:33 25 4
gpt4 key购买 nike

<分区>

我正在尝试从 java.sql.PreparedStatement 对象获取 ParameterMetaData。

虽然文档说它会在数据库出现问题时抛出 SQLException,但我目前收到的是 ArrayIndexOutOfBoundsException。

我正在使用这个 JDBC 驱动程序 URL:oracle.jdbc.driver.OracleDriver我有一个 ojdbc6.jar 和一个 64 位 JDK 1.6.0.45 正在使用中。

我正在做以下事情:

PreparedStatement stmt = myOracleConn.prepareStatement(sql);
preparedStatements.add(stmt);
ParameterMetaData bla2 = stmt.getParameterMetaData(); //this Line throws the Exception

我发现只有当我在 sql-String 中使用注释时才会发生这种情况。

所以,当我的 SQL 是:

1) (没有注释只有参数)

"SELECT * FROM DUAL WHERE 1 = ?" --> no error occurs

2) (注释和参数)

"/* mySampleComment */ SELECT * FROM DUAL WHERE 1 = ?" --> the indexoutofbounds exception occurs

3) (注释但无参数)

"/* mySampleComment */ SELECT * FROM DUAL WHERE 1 = 1" --> no error occurs

我想知道是否就是这样,我不能在我的 sql 中使用注释,或者我是否遗漏了什么......有人知道这件事吗?

编辑1:使用 --comments 而不是/**/会导致相同的行为。编辑2:似乎根本没有,我有一个很大的 SQL,其中包括

\n\t\t\t\t--great

哪个得到异常。当将其包含在仍然发布的示例 sql 中时,它将起作用

如果我遗漏了一些信息,请索取。提前致谢。

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