我在内存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');
答案 0 :(得分:1)
假设您的目的是执行INSERT
或UPDATE
,具体取决于是否存在指定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 )