gpt4 book ai didi

甲骨文合并。我怎样才能使用它?

转载 作者:行者123 更新时间:2023-12-04 18:47:40 25 4
gpt4 key购买 nike

我有这个功能:

      Procedure UpdateDefaultWeight  ( vYear Number, costWeight Number, qualityWeight Number, serviceWeight Number ) 
AS

type weight_table is table of Number(5,2) index by varchar2(50);
weightArray weight_table;
currentPosition varchar2(50);
Begin

weightArray('Cost Weighting') := costWeight;
weightArray('Quality Weighting') := qualityWeight;
weightArray('Service Weighting') := serviceWeight;

currentPosition := weightArray.first;

Loop
Exit When currentPosition is null;
Insert Into GVS.GVSSD16_DFLT_WEIGHT
( cal_year, metric_name, metric_val )
Values
( vYear, currentPosition, weightArray(currentPosition) );

currentPosition := weightArray.next(currentPosition);
End Loop;
END;

现在,正如我写的那样,它只是执行插入操作。但是,我需要它来 UPSERT。我已经查看了有关 MERGE 的文档,但主要是让我对如何将语法应用于我的特定情况感到困惑。

我看过 herehere我明白了,但语法让我失望。

有人愿意帮助 Oracle 新手吗?

最佳答案

假设 cal_year 和 metric_name 定义了连接标准,这应该会让你接近(未经测试):

MERGE INTO GVS.GVSSD16_DFLT_WEIGHT d
USING (SELECT vYear AS YY,
currentPosition AS POS,
weightArray (currentPosition) AS WA
FROM DUAL) v
ON (d.cal_year = v.YY AND d.metric_name = v.pos)
WHEN MATCHED
THEN
UPDATE SET metric_val = v.WA
WHEN NOT MATCHED
THEN
INSERT (cal_year, metric_name, metric_val)
VALUES (v.YY, v.POS, v.WA);

关于甲骨文合并。我怎样才能使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11570527/

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