Best way to use insert statement on Oracle I need to store addresses from customers and companies into different tables with the same columns. And I would like to know what is the best approach to use the same insert statement, but only by changing the name of the table.

Example:

CASE CPF
 WHEN NULL
  INSERT INTO COMPANIES_ADDRESS (ZIPCODE, STREET, NUMBER) VALUES (V_ZIPCODE, V_STREET, V_NUMBER)
 ELSE
  INSERT INTO CUSTOMERS_ADDRESS (ZIPCODE, STREET, NUMBER) VALUES (V_ZIPCODE, V_STREET, V_NUMBER)
END
insert first
when CPF is null 
then into COMPANIES_ADDRESS (ZIPCODE, STREET, "NUMBER")
else into CUSTOMERS_ADDRESS (ZIPCODE, STREET, "NUMBER")
select  V_ZIPCOD, V_STREET, V_NUMBER 
from    dual


P.s.
Using reserved word as identifiers (in this case NUMBER as a column name) is a really bad practice.