user1590310
user1590310

Reputation: 1

Merge in oracle shows Error

I am trying to execute a query

merge into RAWREQUEST
using ( select APP_TXN_SEQ_ID,APP_TXN_ID from SEQ_APP_TIN_MAP )
on (RAWREQUEST.app_txn_id=SEQ_APP_TIN_MAP.app_txn_id )
WHEN MATCHED THEN UPDATE set  RAWREQUEST.app_txn_id = SEQ_APP_TIN_MAP.APP_TXN_SEQ_ID

it shows

SQL Error: ORA-00905: missing keyword
00905. 00000 -  "missing keyword"

Upvotes: 0

Views: 63

Answers (1)

Martin Schapendonk
Martin Schapendonk

Reputation: 13496

Two solutions possible:

Give the inline table an alias

merge into RAWREQUEST
using ( select APP_TXN_SEQ_ID,APP_TXN_ID from SEQ_APP_TIN_MAP ) t
on (RAWREQUEST.app_txn_id = t.app_txn_id )
WHEN MATCHED THEN UPDATE set RAWREQUEST.app_txn_id = t.APP_TXN_SEQ_ID

Use the table SEQ_APP_TIN_MAP directly instead of an inline table

merge into RAWREQUEST
using SEQ_APP_TIN_MAP
on (RAWREQUEST.app_txn_id=SEQ_APP_TIN_MAP.app_txn_id )
WHEN MATCHED THEN UPDATE set  RAWREQUEST.app_txn_id = SEQ_APP_TIN_MAP.APP_TXN_SEQ_ID

Upvotes: 1

Related Questions