user2637966
user2637966

Reputation: 23

SQL Insert with ORA-00911: invalid character

I am adding some new records to my table "flight" in Oracle database. However, I encountered a error which is called in valid character. May anyone help me to figure the error out of my insertion statement.

My Table creation statement is as follow.

 create table flight(
       FlightID integer NOT NULL,
       Airline char(20) NOT NULL,
       DepartCity char(20) NOT NULL,
       ArrivalCity char(20) NOT NULL,
       DepartTime timestamp NOT NULL,
       ArrivalTime timestamp NOT NULL,
       Class2Price integer NOT NULL,
       Class1Price integer NOT NULL,
       Class2Seats integer NOT NULL,
       Class1Seats integer NOT NULL,
       primary key (FlightID));

My insertion is as follow

insert into flight(FlightID, Airline, DepartCity, ArrivalCity, DepartTime, ArrivalTime,         Class2Price, Class1Price, Class2Seats, Class1Seats)
Values(2,'Pacific Airlines','Taipei','Osaka',to_timestamp('2014-12-01 08:15','yyyy-mm-dd HH24:MI'),to_timestamp('2014-12-01 13:15','yyyy-mm-dd HH24:MI'),4500,6000,2,6);

My JDBC JavaCode is as follow

stmt.execute("insert into flight(FlightID, Airline, DepartCity, ArrivalCity, DepartTime, ArrivalTime, Class2Price, Class1Price, Class2Seats, Class1Seats)"
                +"values("+ values+")");

where values is

   values =2,'Pacific Airlines','Taipei','Osaka',to_timestamp('2014-12-01 08:15','yyyy-mm-dd HH24:MI'),to_timestamp('2014-12-01 13:15','yyyy-mm-dd HH24:MI'),4500,6000,2,6

The error code are as follow

 3月 15, 2014 12:45:06 上午 database.application.DatabaseApplication load_data

SEVERE: null java.sql.SQLSyntaxErrorException: ORA-00911: invalid character

at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:183)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:936)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222)
at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1770)
at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1739)
at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:298)
at database.application.DatabaseApplication.load_data(DatabaseApplication.java:282)
at database.application.DatabaseApplication.Data_mani_menu(DatabaseApplication.java:106)
at database.application.DatabaseApplication.main_menu(DatabaseApplication.java:55)
at database.application.DatabaseApplication.main(DatabaseApplication.java:28)

Upvotes: 0

Views: 7050

Answers (1)

robermann
robermann

Reputation: 1722

This line is missing the final comma ',':

DepartCity char(20) NOT NULL

EDIT: it also turned out that the insert statement string was containing tab chars instead of spaces.

Upvotes: 1

Related Questions