我有以下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
如果使用Oracle Database 12.1.0.2 JDBC驱动程序-> ojdbc7.jar (3,698,857字节),则会出现例外 它与Java 6 JDBC驱动程序兼容-> ojdbc6.jar (1,988,051字节)
此SQL语句有什么问题?由于我使用的是Java 8,即使在Oracle Database X / XI上也可以使用ojdbc7驱动程序吗?