0

フラットファイルから読み取り、Oracle テーブルに挿入する単純な ODI インターフェイスを作成しました。ただし、インターフェイスを実行すると、いずれかの手順でエラー メッセージが表示されて失敗します: ORA-00936: 式がありません

このステップで生成されるコードは次のとおりです:-

  /* DETECTION_STRATEGY = NOT_EXISTS */



insert /*+ append */ into ODI_STAGE.I$_CSV_TEST 
  (
    FIRSTNAME,
    LASTNAME,
    IND_UPDATE
)
select 
FIRSTNAME,
    LASTNAME,
    IND_UPDATE
 from (



select   



C1_FIRSTNAME FIRSTNAME,
C2_LASTNAME LASTNAME,

'I' IND_UPDATE


from    ODI_STAGE.C$_0CSV_TEST
where   (1=1)



) S
where NOT EXISTS 
    ( select 1 from ODI_STAGE.CSV_TEST T
    where

         and ((T.FIRSTNAME = S.FIRSTNAME) or (T.FIRSTNAME IS NULL and S.FIRSTNAME IS NULL)) and
        ((T.LASTNAME = S.LASTNAME) or (T.LASTNAME IS NULL and S.LASTNAME IS NULL))
        )

このクエリの何が問題なのか教えてください。構文上の問題は見られないためです。

4

3 に答える 3

1

使用されている LKM によって生成されたクエリの構文上の問題は、最後の where 句の直後に演算子 AND が挿入されていることです。コードを sql developer または toad にコピーしてクエリを実行すると、間違いなく同じエラーが発生します。最後の where 句の後に AND を削除すると、クエリは正常に実行されます。

于 2015-12-26T14:16:53.800 に答える
-1

使用されている IKM と LKM を確認してください。 "IKM Oracle Incremental Update" および "LKM FILE to SQL" を使用してみてください。これであなたのエラーはなくなるはずです。

于 2015-06-09T05:55:08.573 に答える