Je dois utiliser JDBC pour écrire dans une base de données (hibernate/ibatis n'est pas une option) et ma base de données est Oracle 11g.JDBC: se plaint d'un signe invalide mais semble correct
Je crée la requête suivante: insert into user(user_id, username, age, creation_ts) values(seq_userid.NEXTVAL, 'Jack', 19,TO_TIMESTAMP('14/12/2010 15/09/46', 'DD/MM/RR HH24/MI/SS'));
Cependant, mon statetement.execeuteUpdate(above sql)
. génère une exception de signe non valide. Mais quand j'effectue la requête dans l'écureuil, il se commet très bien. Est-ce que quelqu'un sait pourquoi cela se produit?
Edit:
user table:
id: number : not null
username varchar2(30) not null
age number(10) not null
creation_ts timestamp not null
Error:
ORA-00911: invalid character
Java snippet:
try
{
DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
String url = "privatized";
Connection conn = DriverManager.getConnection(url, "username", "password");
Statement st = conn.createStatement();
Format formatter = new SimpleDateFormat(dateTimeFormatString);
String formattedDate = formatter.format(Calendar.getInstance(TimeZone.getDefault()).getTime());
StringBuilder insertQuery = new StringBuilder("insert into user(user_id, username, age, creation_ts) values(seq_userid.NEXTVAL,");
insertQuery.append(username);
insertQuery.append(",");
insertQuery.append(age);
insertQuery.append(",TO_TIMESTAMP('");
insertQuery.append(formattedDate);
insertQuery.append("', 'DD/MM/RR HH24/MI/SS'));");
System.err.println(insertQuery.toString());
st.executeUpdate(insertQuery.toString());
conn.close();
} catch (SQLException ex){
System.err.println(ex.getMessage());
System.err.println(ex.getCause().toString());
ex.printStackTrace();
System.out.println("=========================================");
} catch(Exception ex) {
System.err.println(ex.getMessage());
}
Il serait utile de voir la spécification de la table en question. L'extrait de code Java pourrait aussi être utile. – Jules
At-il une exception Oracle? – HamoriZ
Qu'est-ce qu'une exception de signe non valide? Pourriez-vous coller la trace d'erreur/pile? –