Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ORA-00928 missing SELECT keyword in Oracle

I'm using the following code to insert data. But I'm receiving an error as "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);
 }

I can't see any errors in this code. If someone finds, please tell me what is the mistake and how to solve it?

like image 900
Linga Avatar asked Feb 06 '13 05:02

Linga


1 Answers

single quotes are for string literals not for identifiers only so you should remove it around the columnNames.

INSERT INTO offer1 (RCODE,OFFERNO,DAT) VALUES (?,?,?)

and use executeUpdate since you are not retrieving records which results a resultset.

from DOCS

boolean execute()

  • Executes the SQL statement in this PreparedStatement object, which may be any kind of SQL statement.

ResultSet executeQuery()

  • Executes the SQL query in this PreparedStatement object and returns the ResultSet object generated by the query.

int executeUpdate()

  • Executes the SQL statement in this PreparedStatement object, which must be an SQL INSERT, UPDATE or DELETE statement; or an SQL statement that returns nothing, such as a DDL statement.
like image 85
John Woo Avatar answered Sep 21 '22 12:09

John Woo