У меня есть эта проблема,
Когда я отправляю SQL-запрос в качестве аргумента, он выдает ошибку
Когда я использую тот же запрос непосредственно в моей Java-программе, он работает нормально.
Мой SQL-запрос при отправке в качестве аргумента выглядит следующим образом
Select RATINGPERIOD from INVESTMENT.I1INVE Where INVESTMENTID = 100
rs = stmt.executeQuery(sqlQery); // Select RATINGPERIOD from INVESTMENT.I1INVE Where INVESTMENTID = 100
и когда я использую его непосредственно в моей Java-программе, выполните следующие действия:
try
{
// Load the driver
Class.forName("com.ibm.db2.jcc.DB2Driver");
System.out.println("**** Loaded the JDBC driver");
// Create the connection using the IBM Data Server Driver for JDBC and SQLJ
con = DriverManager.getConnection (url, user, password);
// Create the Statement
stmt = con.createStatement();
System.out.println("**** Created JDBC Statement object");
// Execute a query and generate a ResultSet instance
rs = stmt.executeQuery("Select RATINGPERIOD from INVESTMENT.I1INVE where INVESTMENTID = 100");
while (rs.next()) {
delay = rs.getString("RATINGPERIOD");
System.out.println("size of list ="+delay);
}
}
Error log
com.ibm.db2.jcc.am.SqlException: [jcc][10103][10941][3.62.57] Method executeQuery cannot be used for update. ERRORCODE=-4476, SQLSTATE=null
at com.ibm.db2.jcc.am.fd.a(fd.java:660)
at com.ibm.db2.jcc.am.fd.a(fd.java:60)
at com.ibm.db2.jcc.am.fd.a(fd.java:120)
at com.ibm.db2.jcc.am.jn.a(jn.java:4129)
at com.ibm.db2.jcc.am.jn.a(jn.java:2875)
at com.ibm.db2.jcc.am.jn.a(jn.java:679)
at com.ibm.db2.jcc.am.jn.executeQuery(jn.java:663)
at com.profitsoftware.testing.utils.keywords.date.DatabaseSQL.sqlQuery(DatabaseSQL.java:46)
at com.profitsoftware.testing.utils.keywords.date.DatabaseSQLKeywords.executeSqlQuery(DatabaseSQLKeywords.java:18)com.
Хорошо, я получил больше информации, я назначил SQL-запрос строке в программе Java, а затем сравнил ее с запросом (String), который я получал в качестве аргумента в моей Java-программе, и он выдает false. что объясняет, может быть, когда запрос передается из RIDE в Java-программу, он как-то меняется. есть идеи, что там происходит?
Заранее спасибо и извините, если это звучит глупо, я новичок в этом мире программирования.
ок, все заработало, на самом деле я что-то там упустил, так что типа. Сама моя логика была хороша, но это была опечатка, которая создала проблему
- Sara