Reputation: 2134
I am making Java 1.6-JDBC-Oracle 11 code. I created a table called employee with id,name and age. I am getting the error - ORA-00911: invalid character. How can I fix this ?
Here is my code-
import java.sql.*;
import java.util.Properties;
import java.io.IOException;
import java.io.FileInputStream;
public class HelloOracle {
static String query =
"SELECT emp_id, emp_name, emp_age " +
"FROM employee;";
public static void main(String[] args) {
String username = "";
String password = "";
Properties prop = new Properties();
try {
FileInputStream fis = new FileInputStream("Login.properties");
prop.load(fis);
} catch (IOException ex) {
ex.printStackTrace();
}
username = prop.getProperty("username").trim();
password = prop.getProperty("password").trim();
try {
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/xe", username, password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
System.out.print(rs.getString("emp_id"));
System.out.print(" , ");
System.out.print(rs.getString("emp_name"));
System.out.print(" , ");
System.out.print(rs.getString("emp_age"));
System.out.println();
}
} catch (SQLException e) {
System.out.println("Exception: " + e);
}
}
}
Unfortunately, oracle error messages are not as informative as mysql or mssql and I am not able to trouble shoot them easily. I am also not able to see which line of code caused the exception.
Upvotes: 24
Views: 26027
Reputation: 308733
Bohemian is exactly right. I don't see why this was so hard. If you pop the message into Google, you'll get this:
http://www.dba-oracle.com/sf_ora_00911_invalid_character.htm
The semi-colon is the first problem noted.
Another recommendation: Don't do this.
catch(SQLException e){System.out.println("Exception: " + e);}
Do this instead:
catch(SQLException e){
e.printStackTrace(); // better yet, log it.
}
It'll give you lots more information.
Upvotes: 0
Reputation: 424973
Try removing the semi colon from the end of your SQL statement.
ie
static String query = "SELECT emp_id, emp_name, emp_age " +
"FROM employee"; // no trailing ";" in the SQL
Upvotes: 52