尽管iBatis在Oracle SQL编辑器中工作,但它仍然失败

时间:2014-09-25 07:00:52

标签: sql oracle ibatis

以下查询在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命令未正确结束。

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。 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#))