使用 oracle 合并缺少的关键字
Posted
技术标签:
【中文标题】使用 oracle 合并缺少的关键字【英文标题】:merge in oracle missing keyword using 【发布时间】:2014-08-13 18:15:29 【问题描述】:我在内存数据库的 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】:假设您的意图是根据指定的company_name
是否存在行来执行INSERT
或UPDATE
,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 )
【讨论】:
以上是关于使用 oracle 合并缺少的关键字的主要内容,如果未能解决你的问题,请参考以下文章
Oracle SQL:使用带有递归 CTE 的 SELECT INTO 时出现“缺少关键字”
错误:ORA-00969:缺少 ON 关键字 - Oracle