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