OJDBC8 SQLFeatureNotSupportedException для getParameterMetaData - PullRequest
0 голосов
/ 23 января 2020
public static void main(String[]args) throws Exception {

    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection con= DriverManager.getConnection("connectionstring","user","password");

    con.prepareStatement("UPDATE TESTTABLE SET TMPSTMPCOLUMN = CURRENT_TIMESTAMP WHERE CHARCOLUMN = ?").getParameterMetaData().getParameterClassName(1);


    return;
}

Выполнение этого вызывает меня

Exception in thread "main" java.sql.SQLFeatureNotSupportedException: Nicht unterstützte Funktion: checkValidIndex
    at oracle.jdbc.driver.OracleParameterMetaData.checkValidIndex(OracleParameterMetaData.java:216)
    at oracle.jdbc.driver.OracleParameterMetaData.getParameterClassName(OracleParameterMetaData.java:366)
    at test.main(test.java:14)

Кажется, что драйвер Oracle JDB C не может правильно проанализировать оператор из-за CURRENT_TIMESTAMP. Выполнение этого подготовительного заявления работает, но получение каких-либо метаданных по параметрам не выполняется, пока CURRENT_TIMESTAMP находится где-то в запросе.

Редактировать: версия драйвера - 19.3.0.0

...