Java 如何在sybase iq中执行PreparedStatement(select object_id())?

Java 如何在sybase iq中执行PreparedStatement(select object_id())?,java,jdbc,sybase,sap-iq,Java,Jdbc,Sybase,Sap Iq,我们有一个与sybase iq数据库通信的小型jdbc应用程序,它可以: String objectName = "SYS.SYSWEBSERVICE"; //The actual value of objectName does not matter. //It could be any view object in the sys schema PreparedStatement preparedStatement = connection.prepareStatement("S

我们有一个与sybase iq数据库通信的小型jdbc应用程序,它可以:

String objectName = "SYS.SYSWEBSERVICE"; 
//The actual value of objectName does not matter.
//It could be any view object in the sys schema

PreparedStatement preparedStatement =
    connection.prepareStatement("SELECT OBJECT_ID(?)");
preparedStatement.setString(1, objectName);
preparedStatement.executeQuery();
我们得到了以下错误:

java.sql.SQLException: JZ0SA: Prepared Statement: Input parameter not set, index: 0.s
我看着

当我更改代码时

setString(0, objectName)
我得到:

java.lang.ArrayIndexOutOfBoundsException: -1
    at com.sybase.jdbc4.jdbc.SybPreparedStatement.a(Unknown Source)
    at com.sybase.jdbc4.jdbc.SybPreparedStatement.a(Unknown Source)
    at com.sybase.jdbc4.jdbc.SybPreparedStatement.a(Unknown Source)
    at com.sybase.jdbc4.jdbc.SybPreparedStatement.setString(Unknown Source)
我们正在使用jconn-4.0.jar:

Manifest-Version: 1.0
Created-By: 1.6.0_03 (Sun Microsystems Inc.)
Main-Class: SybVersion

Name: com/sybase/jdbcx/
Implementation-Vendor: "Sybase, Inc."
Specification-Title: "jConnect for JDBC 4.0"
Implementation-Title: "com.sybase.jdbcx"
Implementation-Version: "Build (26502)"
Specification-Version: "7.0"
Specification-Vendor: "Sybase, Inc."

有人能告诉我我做错了什么吗?谢谢。

不管API文档怎么说,我认为参数索引必须是基于零的,也许这是您使用的JDBC驱动程序中的一个错误。尝试使用基于零的索引。设置字符串(0,…)

我的回答是基于错误报告索引:问题出在0上,因为您链接的api建议,否则您还可以包含
objectName
的值,因为它可能是相关的。谢谢@Phaeze。我更新了我的问题。谷歌上出现的关于这个特定错误的大部分信息都指向应用程序和sybase服务器之间JConnect的版本差异。查看:听起来像是驱动程序中的错误。我正在获取java.lang.ArrayIndexOutOfBoundsException:-1执行setString(0,…)
Manifest-Version: 1.0
Created-By: 1.6.0_03 (Sun Microsystems Inc.)
Main-Class: SybVersion

Name: com/sybase/jdbcx/
Implementation-Vendor: "Sybase, Inc."
Specification-Title: "jConnect for JDBC 4.0"
Implementation-Title: "com.sybase.jdbcx"
Implementation-Version: "Build (26502)"
Specification-Version: "7.0"
Specification-Vendor: "Sybase, Inc."