gpt4 book ai didi

Oracle 将常量合并到单个表中

转载 作者:行者123 更新时间:2023-12-03 13:29:53 25 4
gpt4 key购买 nike

在 Oracle 中,给定一个简单的数据表:

create table data (
id VARCHAR2(255),
key VARCHAR2(255),
value VARCHAR2(511));

假设我想“插入或更新”一个值。我有类似的东西:
merge into data using dual on 
(id='someid' and key='testKey')
when matched then
update set value = 'someValue'
when not matched then
insert (id, key, value) values ('someid', 'testKey', 'someValue');

还有比这更好的方法吗?该命令似乎有以下缺点:
  • 每个文字都需要输入两次(或通过参数设置添加两次)
  • “使用双重”语法似乎很老套

  • 如果这是最好的方法,有没有办法在 JDBC 中设置每个参数两次?

    最佳答案

    我不认为使用双重是一种黑客行为。为了摆脱绑定(bind)/打字两次,我会做类似的事情:

    merge into data
    using (
    select
    'someid' id,
    'testKey' key,
    'someValue' value
    from
    dual
    ) val on (
    data.id=val.id
    and data.key=val.key
    )
    when matched then
    update set data.value = val.value
    when not matched then
    insert (id, key, value) values (val.id, val.key, val.value);

    关于Oracle 将常量合并到单个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/167471/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com