合并oracle缺少关键字使用

时间:2014-08-13 18:15:30

标签: oracle h2

我在内存db中使用了H2的合并,它对我来说很好用。 合并到

quickbooks_companies(COMPANY_NAME,ACCESS_TOKEN,ACCESS_TOKEN_SECRET,DATE_TOKEN_RETRIEVED)
key (COMPANY_NAME)
values('${companyName}',#[message.payload.accessToken],#[message.payload.accessTokenSecret], CURRENT_TIMESTAMP())

当我尝试在Oracle db中运行相同时,它会丢失关键字USING。

我试过这种方式,但没有奏效:

merge into quickbooks_companies('COMPANY_NAME','ACCESS_TOKEN','ACCESS_TOKEN_SECRET') USING key (COMPANY_NAME) values('My Company','11223344','99887766');

1 个答案:

答案 0 :(得分:1)

假设您的目的是执行INSERTUPDATE,具体取决于是否存在指定company_name的行,Oracle语法将类似于

MERGE INTO quickbooks_companies dest
  USING( SELECT 'My Company' company_name,
                '11223344' access_token,
                '99887766' access_token_secret
           FROM dual ) src
     ON( dest.company_name = src.company_name )
  WHEN MATCHED THEN UPDATE
     SET dest.access_token = src.access_token,
         desc.access_token_secret = src.access_token_secret
  WHEN NOT MATCHED THEN INSERT( company_name, access_token, access_token_secret )
     VALUES( src.company_name, src.access_token, src.access_token_secret )