使用 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 是否存在行来执行INSERTUPDATE,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

Oracle SQL - 使用 Case 语句缺少关键字错误的更新查询

ORA-00905: 缺少关键字错误 oracle

Oracle 错误:ORA-00905:缺少关键字

无法更正 Oracle 错误 ORA-00905 SQL 中缺少关键字