我正在使用以下代码插入数据。但是我收到一个错误,如 "ORA-00928: missing SELECT keyword"
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
java.sql.Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@xxx.xxx.x.xxx:xxxx:xxxx", "xxxx", "xxxx");
String query="insert into offer1('RCODE','OFFERNO','DAT') values(?,?,?)";
PreparedStatement ps=conn.prepareStatement(query);
ps.setString(1,r_code);
ps.setString(2,offerno);
ps.setDate(3,sqlDate);
ResultSet rs=ps.executeQuery();
out.println("data inserted");
}catch(Exception e)
{
out.println(e);
}
我在这段代码中看不到任何错误。如果有人找到,请告诉我错误是什么以及如何解决?
最佳答案
单引号仅适用于字符串文字而不适用于标识符,因此您应该在列名周围将其删除。
INSERT INTO offer1 (RCODE,OFFERNO,DAT) VALUES (?,?,?)
并使用 executeUpdate
,因为您没有检索产生结果集的记录。
来自 DOCS
boolean 执行()
- 执行这个PreparedStatement对象中的SQL语句,可以是任何类型的SQL语句。
结果集执行查询()
- 在此 PreparedStatement 对象中执行 SQL 查询并返回查询生成的 ResultSet 对象。
int 执行更新()
- 执行此PreparedStatement对象中的SQL语句,必须是SQL INSERT、UPDATE或DELETE语句;或不返回任何内容的 SQL 语句,例如 DDL 语句。
关于java - ORA-00928: Oracle 中缺少 SELECT 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14722483/