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成功执行它。
感谢任何帮助。
感谢。
答案 0 :(得分:1)
尝试将列定义为CTE定义的一部分:
WITH TMP1(REQUEST_NO) AS
(SELECT REQUEST_NO FROM QUOTE
)
SELECT TMP1.REQUEST_NO
FROM TMP1;
我认为在使用with
时,某些数据库需要显式列列表。