There are two tables in Oracle SQL Developer that need to be updated with the amounts of the subscribers' invoices, from values from the INVOICE_ADJUSTMENT table and if the subscriber is not in the base, it must be included.
The main table that I need to update is the INVOICE_SUBSCRIBE where it has the fields (SUBSCRIBER, PLAN, VALUE) and the other one from where I will bring the info is the AJUSTE_INVOICE that has the fields (SUBSCRIBER, PLAN, NEW_VALUE).
I managed to do it in two parts with INSERT INTO and then UPDATE, but the idea is to make a single code and also I need to update the same table with ~300 million records and it is not possible to run the entire base at once. How can I sketch the bulk update routine/sql?
INSERT INTO INVOICE_SUBSCRIBER(COD_SUBSCRIBER, COD_PLAN)
SELECT
A.COD_SUBSCRIBER
, A.COD_PLAN
FROM INVOICE_ADJUSTMENT A
LEFT JOIN INVOICE_SUBSCRIBER B
ON A.COD_SUBSCRIBER = B.COD_SUBSCRIBER
WHERE B.COD_SUBSCRIBER IS NULL
AND AFTER RUNNING THE INSERT, I MAKE THE UPDATE:
INVOICE UPDATE_SUBSCRIBER
SET INVOICE_VALUE = NEW_VALUE
FROM INVOICE_ADJUSTMENT A
WHERE A.COD_SUBSCRIBER = INVOICE_SUBSCRIBER.COD_SUBSCRIBER