Oracle Merge. How can I use it?
Assuming that cal_year and metric_name define the join criteria, this should get you close (untested):
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 MATCHEDTHEN UPDATE SET metric_val = v.WAWHEN NOT MATCHEDTHEN INSERT (cal_year, metric_name, metric_val) VALUES (v.YY, v.POS, v.WA);