У нас есть небольшое приложение jdbc, которое взаимодействует с базой данных sybase iq, которая делает:
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
Я просмотрел http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc39001.0700/html/prjdbc0700/CHDGJJIG.htm
JZ0SA: Prepared Statement: Input parameter not set, index: _____.
Action: Be sure that each input parameter has a value.
Когда я меняю код
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."
Может кто-нибудь сказать мне, что я делаю неправильно? Спасибо.
objectName
, поскольку оно может иметь значение. - person   schedule 04.06.2015