我正在尝试使用iBatis进行插入操作。
INSERT INTO SCHEMA.TABLE
(FIELD1,
FIELD2,
FIELD3)
VALUES
(#field1#,
(SELECT
ANOTHER_FIELD
FROM
SCHEMA.TABLE
WHERE
FIELD4= #field2#),
#field2#)
内部选择查询总是失败并返回NULL。但是,如果我将#field2#替换为仅在内部查询中的实际值,它可以正常工作。 为什么iBatis不在内部查询中替换fieldvalues?
有什么想法吗?
答案 0 :(得分:3)
使用单个子查询并省略VALUES
关键字的以下方式适用于Oracle,请尝试使用iBatis:
INSERT INTO SCHEMA.TABLE
(FIELD1,
FIELD2,
FIELD3)
(
SELECT
#field1#,
ANOTHER_FIELD,
#field2#
FROM
SCHEMA.TABLE
WHERE
FIELD4= #field2#
)
答案 1 :(得分:1)
该语法对Oracle无效。请尝试以下方法:
INSERT INTO SCHEMA.TABLE
(FIELD1,
FIELD2,
FIELD3)
SELECT
#field1#,
ANOTHER_FIELD,
#field2#
FROM
SCHEMA.TABLE
WHERE
FIELD4= #field2#