/************Insert Data into Table*************/
declare
v_has_error BOOLEAN := FALSE;
begin
FOR R1 IN (
            SELECT 
              COL.c001 AS SOLD_TO_CUSTOMER_ID,	
              COL.c002 AS GROUP_CODE,	
              COL.c003 AS SALESREP_ID,	
              COL.c004 AS SHIP_TO_ADDRESS
              |
              |
              |
FROM TABLE_NAME
)
LOOP
--=== Not Null Validation ===
        IF      R1.SOLD_TO_CUSTOMER_ID IS NULL 
           OR  R1.GROUP_CODE IS NULL
           OR  R1.SALESREP_ID IS NULL
           OR  R1.ITEM_ID IS NULL
THEN
APEX_ERROR.ADD_ERROR(
p_message => 'Please enter a value (Customer, Group, Salesrep, Item ID) for the item.',
p_display_location => APEX_ERROR.C_INLINE_IN_NOTIFICATION
);
v_has_error := TRUE;
END IF;
-- skip insert if error found
IF v_has_error THEN
RETURN;
END IF;
INSERT INTO TABLE_NAME ( COLUMN_1, COLUMN_2,,,,,)
VALUERS ( R1.SOLD_TO_CUSTOMER_ID, R1.GROUP_CODE ...)
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error: '||SQLERRM);
END;
