H2 JDBC 准备语句异常
H2 JDBC Prepared Statement Exception
我正在尝试 select 默认架构中的所有表,'PUBLIC' 使用准备好的语句和 TABLE_CATALOG 和 TABLE_SCHEMA 的参数。当我创建一个准备好的语句时,我从系统返回一个错误,它没有任何意义。如果我在没有 TABLE_SCHEMA 的情况下指定 TABLE_CATALOG,它会完美运行。另外,如果我指定 TABLE_SCHEMA 而没有 TABLE_CATALOG 它也可以正常工作。我是不是做错了什么?
SELECT
TABLE_CATALOG,
TABLE_SCHEMA,
TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_CATALOG = ?, TABLE_SCHEMA = ?
线程 "main" org.h2.jdbc.JdbcSQLException 中出现异常:SQL
中出现语法错误
statement "SELECT
TABLE_CATALOG,
TABLE_SCHEMA,
TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_CATALOG = ?,[*] TABLE_SCHEMA = ?"; SQL statement:
SELECT
TABLE_CATALOG,
TABLE_SCHEMA,
TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_CATALOG = ?, TABLE_SCHEMA = ? [42000-193]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.message.DbException.getSyntaxError(DbException.java:191)
at org.h2.command.Parser.getSyntaxError(Parser.java:530)
at org.h2.command.Parser.prepareCommand(Parser.java:257)
at org.h2.engine.Session.prepareLocal(Session.java:561)
at org.h2.engine.Session.prepareCommand(Session.java:502)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1203)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:73)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:287)
at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:310)
at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java)
这个
TABLE_CATALOG = ?, TABLE_SCHEMA = ?
应该是
TABLE_CATALOG = ? AND TABLE_SCHEMA = ?
我正在尝试 select 默认架构中的所有表,'PUBLIC' 使用准备好的语句和 TABLE_CATALOG 和 TABLE_SCHEMA 的参数。当我创建一个准备好的语句时,我从系统返回一个错误,它没有任何意义。如果我在没有 TABLE_SCHEMA 的情况下指定 TABLE_CATALOG,它会完美运行。另外,如果我指定 TABLE_SCHEMA 而没有 TABLE_CATALOG 它也可以正常工作。我是不是做错了什么?
SELECT
TABLE_CATALOG,
TABLE_SCHEMA,
TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_CATALOG = ?, TABLE_SCHEMA = ?
线程 "main" org.h2.jdbc.JdbcSQLException 中出现异常:SQL
中出现语法错误statement "SELECT
TABLE_CATALOG,
TABLE_SCHEMA,
TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_CATALOG = ?,[*] TABLE_SCHEMA = ?"; SQL statement:
SELECT
TABLE_CATALOG,
TABLE_SCHEMA,
TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_CATALOG = ?, TABLE_SCHEMA = ? [42000-193]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.message.DbException.getSyntaxError(DbException.java:191)
at org.h2.command.Parser.getSyntaxError(Parser.java:530)
at org.h2.command.Parser.prepareCommand(Parser.java:257)
at org.h2.engine.Session.prepareLocal(Session.java:561)
at org.h2.engine.Session.prepareCommand(Session.java:502)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1203)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:73)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:287)
at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:310)
at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java)
这个
TABLE_CATALOG = ?, TABLE_SCHEMA = ?
应该是
TABLE_CATALOG = ? AND TABLE_SCHEMA = ?