在oracle中合并显示错误

时间:2016-08-24 09:18:57

标签: sql oracle

我正在尝试执行查询

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

显示

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

1 个答案:

答案 0 :(得分:1)

可能的两种解决方案:

为内联表提供别名

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

直接使用表SEQ_APP_TIN_MAP而不是内联表

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