I got an issue with INSERT ALL statement for the below table and this table has a Before Insert trigger which automatically populates the date when the ID_NO column is populated.
CREATE TABLE TestA
(
ID_NO varchar2(30) PRIMARY KEY,
BDATE TIMESTAMP
)
CREATE TRIGGER BDATE_TR
BEFORE INSERT OR UPDATE ON TestA
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
BEGIN
IF INSERTING OR UPDATING THEN
SELECT SYSTIMESTAMP INTO :NEW.BDATE FROM DUAL;
END IF;
END;
Now when inserting the following statement is successful.
INSERT INTO TestA (ID_NO) VALUES ('A1');
But using INSERT ALL statement like this:
INSERT ALL
INTO TESTA (ID_NO) VALUES ('A2')
INTO TESTA (ID_NO) VALUES ('A3')
SELECT * FROM dual;
I am getting an error
ORA-01400: cannot insert NULL into TestA.ID_NO.
Please let me know what mistake I made when using the INSERT ALL statement?