Ich habe App Java und seine für JDBC verbinden und führen Sie diese Abfrage:Fehler in SQL-Orakel
String date = '21-Dec-16';
StringBuilder query = new StringBuilder("SELECT * ");
query.append("FROM TEST WHERE PUBLISHED_DATE='").append(date).append("'");
connection = getConnection(jdbc);
stmt = connection.createStatement();
rs = stmt.executeQuery(query.toString());
syso query => select * from TEST where PUBLISHED_DATE='21-Dec-16'
und Fehler:
java.sql.SQLDataException: ORA-01858: a non-numeric character was found where a numeric was expected
i zu Test:
select * from TEST where PUBLISHED_DATE=TO_DATE('21-Dec-16','DD-MON-RR')
und Fehler:
java.sql.SQLDataException: ORA-01843: not a valid month
Trotzdem führe ich diese Abfrage in meinem SQL-Entwickler und funktioniert!
Wo ist das Datum definiert? Übrigens sollten Sie hier eine vorbereitete Aussage verwenden, Ihr aktueller Ansatz ist voller Probleme. –
Was ist, wenn Sie es mit diesem Format "DD-MM-YYYY '" versuchen –
'MON' hängt von der Sprache ab, die in Ihren Sitzungseinstellungen definiert ist. Tun Sie sich selbst einen Gefallen und benutzen Sie einfach "MM". – Tom