【问题标题】:Syntax error in SQL statement “WITH” keyword throwing exceptionSQL 语句中的语法错误“WITH”关键字引发异常
【发布时间】:2014-05-08 11:44:29
【问题描述】:

我还添加了另一个 TMP2,但无法运行查询...您能帮我解决这个查询吗?我正在使用 Oracle 11g。

WITH TMP1(REQUEST_NO) AS (SELECT REQUEST_NO FROM QUOTE) 
SELECT TMP1.REQUEST_NO FROM TMP1;

WITH TMP1(REQUEST_NO) AS
  (SELECT REQUEST_NO FROM QUOTE),
  TMP2(AGENT) AS (SELECT AGENT FROM AGENT_TAB)
SELECT TMP2.AGENT FROM TMP2;

我得到的例外是:

org.h2.jdbc.JdbcSQLException:
Syntax error in SQL statement "WITH TMP1(REQUEST_NO) AS (SELECT REQUEST_NO FROM QUOTE),
[*]TMP2(AGENT) AS (SELECT AGENT FROM AGENT_TAB) SELECT TMP2.AGENT FROM TMP2 "; expected "(,
SELECT, FROM"; SQL statement:

查询在 sql developer 中很好,但在 Junit 测试中不起作用。 jdbc:h2:mem:request_no;MODE=Oracle 我们正在使用带有 windows 7(64 位)和 jdk 1.7.0_25 的 h2 版本 1.3.171。

【问题讨论】:

    标签: java sql oracle oracle11g h2


    【解决方案1】:

    Oracle 支持 WITH 子句,但看起来 H2 不支持它: H2 SQL grammar

    我会将 with 部分中的查询转换为主查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多