Hello there, I have a simple java class that uses an Oracle database and I'm having problem with numeric fields that contain decimals... I want to use a dot instead of a coma. But when I do, I obtain the following error:
java.sql.SQLException: ORA-01722: Nombre non valide
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:138)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:316)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:282)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:639)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:113)
at oracle.jdbc.driver.T4CStatement.execute_for_describe(T4CStatement.java:431)
at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:1029)
at oracle.jdbc.driver.T4CStatement.execute_maybe_describe(T4CStatement.java:463)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1126)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1274)
at DBTest.main(DBTest.java:16)
And here is my code ( I've simplified it ):
import java.io.*;
import java.sql.*;
import oracle.jdbc.driver.OracleDriver;
public class DBTest
{
public static void main (String[] args)
{
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
DriverManager.registerDriver(new OracleDriver());
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@nemesis:1721:dcap", "opus_client", "opus_clientdcap");
Statement stmt = conn.createStatement();
ResultSet rs;
rs = stmt.executeQuery("select 1 from dual where 1.1 = to_number('1.1')");
while ( rs.next() ) {
System.out.println("Succes!");
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Is there a specific environment variable I must set in the JVM to make this work? Or is this due to the language that my OS uses?
Thanks in advance for your help!