【问题标题】:iBatis query failing in spite of it working in an Oracle SQL editoriBatis 查询失败,尽管它在 Oracle SQL 编辑器中工作
【发布时间】:2014-09-25 15:20:06
【问题描述】:

以下查询在 SQL 编辑器 (Oracle) 中运行良好,但通过 iBatis 失败。

INSERT INTO TEST_TABLE (COL1, COL2, COL3, COL4, COL5 )
    SELECT   #col1#, 
                #col2#, 
                #col3#, 
                #col4#, 
                #col5#
                FROM DUAL
        where not exists (select 1 from TEST_TABLE where COL1 = #col1#)

异常 - ORA-00933 - SQL 命令未正确结束。

【问题讨论】:

  • 在哪里使用如此复杂的查询?您可以为此使用 MERGE。
  • 老实说,我不知道 MERGE 语句。我将阅读它并尝试在这种情况下申请。谢谢@Ivan

标签: sql oracle ibatis


【解决方案1】:

我发现了问题。 iBatis 不知何故需要括号来识别子查询。我可以通过在外部 SELECT 子句周围添加括号来解决此问题。

INSERT INTO TEST_TABLE (COL1, COL2, COL3, COL4, COL5 )
    ( SELECT   #col1#, 
                #col2#, 
                #col3#, 
                #col4#, 
                #col5#
                FROM DUAL
        where not exists (select 1 from TEST_TABLE where COL1 = #col1#))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多