1

iBatisを使用して挿入操作を実行しようとしています。

    INSERT INTO SCHEMA.TABLE
       (FIELD1, 
        FIELD2, 
        FIELD3)
     VALUES
       (#field1#, 
            (SELECT 
                ANOTHER_FIELD
            FROM 
                SCHEMA.TABLE
            WHERE 
                FIELD4= #field2#), 
        #field2#)

内部選択クエリは常に失敗し、NULLを返します。ただし、内部クエリでのみ#field2#を実際の値に置き換えると、正常に機能します。なぜiBatisは内部クエリのフィールド値を置き換えないのですか?

何か案は?

4

2 に答える 2

3

単一のサブクエリを使用し、キーワードを省略する次の方法VALUESはOracleで機能します。iBatisで試してください。

INSERT INTO SCHEMA.TABLE
   (FIELD1, 
    FIELD2, 
    FIELD3)
   (
        SELECT
            #field1#, 
            ANOTHER_FIELD,
            #field2#
        FROM 
            SCHEMA.TABLE
        WHERE 
            FIELD4= #field2#
   )
于 2010-03-18T21:19:04.167 に答える
1

その構文はOracleでは無効です。次のことを試してください。

INSERT INTO SCHEMA.TABLE
   (FIELD1, 
    FIELD2, 
    FIELD3) 
   SELECT 
       #field1#,
       ANOTHER_FIELD,
       #field2#
   FROM 
       SCHEMA.TABLE
   WHERE 
       FIELD4= #field2#
于 2010-03-18T21:21:38.750 に答える