jdbc:h2:mem:request_no;MODE=Oracle
我们正在Windows 7(64位)和jdk 1.7.0_25中使用h2版本1.3.171。
当我们尝试运行SQL语句时:
WITH TMP1 AS (SELECT col1 FROM table1) SELECT TMP1.col1 FROM TMP1
我们收到以下异常:
org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement
"WITH TMP1 AS[*] (SELECT REQUEST_NO FROM QUOTE)
SELECT TMP1.REQUEST_NO FROM TMP1";
expected "., ("; SQL statement:
WITH TMP1 AS (SELECT REQUEST_NO FROM QUOTE)
SELECT TMP1.REQUEST_NO FROM TMP1 [42001-171]
SQL语句很好,因为我们能够通过SQL Developer成功执行它。
任何帮助表示赞赏。
谢谢。
最佳答案
尝试将列定义为CTE定义的一部分:
WITH TMP1(REQUEST_NO) AS
(SELECT REQUEST_NO FROM QUOTE
)
SELECT TMP1.REQUEST_NO
FROM TMP1;
我认为某些数据库在使用
with
时需要明确的列列表。