Bom dia, estou tendo problemas para inserir no banco oracle.
minha classe de conexão ->
[code]public class ConnectionFactory {
public static Connection getConnection() {
try {
Class.forName("oracle.jdbc.OracleDriver");
Connection con;
con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "vinicius", "vinicius");
System.out.println("Conctado");
return con;
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("nao carrego driver");
return null;
} catch (SQLException e) {
System.out.println("nao conecto");
}
return null;
}[/code]
e este é meu método de teste para inserir ->
[code]public void testeInsere(){
Connection con = ConnectionFactory.getConnection();
PreparedStatement ps = null;
String sql = "INSERT INTO TESTE(ID,NOME) VALUES(1,'TESTE');";
try {
ps = con.prepareStatement(sql);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
ConnectionFactory.close(ps, con);
}
}[/code]
minha saída no console é esta ->
[code]Conctado
java.sql.SQLException: ORA-00911: caractere inválido
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:330)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:287)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:753)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:218)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:971)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1191)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3414)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3498)
at br.com.jdbc.dao.ConnectionFactory.testeInsere(ConnectionFactory.java:59)
at br.com.jdbc.dao.ConnectionFactory.main(ConnectionFactory.java:70)
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
[/code]
Bom a principio o erro é simples a nível de banco caractere inválido. Mas não é exatamente este erro que esta ocorrendo como podem perceber eu consigo me conectar e ele me retorna um provável erro ORA-00911: caractere inválido.
Encontrei algumas resposta na internet referente a este erro dizendo que provavelmente é a versão do meu JDK(1.6) que é incompatível com o diver jdbc que estou usando que não deixa eu fazer estas operações executeUpdate(); execute(); etc… pois como devem ter percebido consigo me conectar perfeitamente, apenas não consigo fazer inserts, update e delete…
o erro acontece nesse momento ps.executeUpdate();
Se alguém conseguir me ajudar a encontrar uma solução o quanto antes muito obrigado att.