add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE history (organization_id, company_id, code) AS
SELECT '123456778', '88888888888', '1234567' FROM DUAL UNION ALL
SELECT '123456778', '88888888888', '1234567' FROM DUAL UNION ALL
SELECT '123456778', '88888888888', '1234567' FROM DUAL UNION ALL
SELECT '123456778', '88888888888', '1234567' FROM DUAL UNION ALL
SELECT '123456778', '88888888888', '1234567' FROM DUAL;
5 rows affected
MERGE INTO HISTORY h
USING (
WITH data (org_id, company_id) AS (
select '3.11', '11111111' from dual union
select '3.22.3', '22222222' from dual union
select '3.44.5', '33333333' from dual
)
SELECT h.ROWID AS rid,
d.*
FROM history h
CROSS JOIN LATERAL (
SELECT *
FROM data
WHERE ROWNUM > 0
AND h.ROWID IS NOT NULL
ORDER BY DBMS_RANDOM.VALUE() DESC
FETCH FIRST ROW ONLY
) d
) d
ON ( h.ROWID = d.RID )
WHEN MATCHED THEN
UPDATE
SET ORGANIZATION_ID = d.org_id,
COMPANY_ID = d.company_id;
5 rows affected
SELECT * FROM history;
ORGANIZATION_ID COMPANY_ID CODE
3.44.5 33333333 1234567
3.11 11111111 1234567
3.44.5 33333333 1234567
3.22.3 22222222 1234567
3.11 11111111 1234567