У меня есть следующий оператор SQL:
SELECT ID_TABLE_1
FROM TABLE_1
WHERE TABLE_1.STRING_FIELD=(
SELECT ANOTHER_STRING FROM ANOTHER_TABLE
WHERE ID_ANOTHER_TABLE = 1)
AND TABLE_1.FIELD_2= :PARAM
Когда я готовлю оператор, все в порядке.Но когда я вызываю getParameterMetaData (), возникает исключение:
Причина: java.sql.SQLSyntaxErrorException: ORA-00923: ключевое слово FROM не найдено там, где ожидается
private static Pair<JDBCResources, Integer> execSQL(Connection conn, String sqlStatement, String params, boolean executeUpdate) {
try {
PreparedStatement ps = conn.prepareStatement(sqlStatement); //OK
ParameterMetaData paramData = ps.getParameterMetaData(); //java.sql.SQLSyntaxErrorException
Исключение возникает, если я использую драйвер JDBC Oracle Database 12.1.0.2 -> ojdbc7.jar (3 698 857 байт) Работает с драйвером JDBC Java 6-> ojdbc6.jar (1 988 051 байт)
Что не так в этом операторе SQL?Поскольку я использую Java 8, могу ли я использовать драйвер ojdbc7 даже в Oracle Database X / XI?