Não faço ideia de por que você estava recebendo o erro, mas retirei tudo e reconstruí o gatilho do básico e fiz isso funcionar:
CREATE OR REPLACE TRIGGER product_audit
BEFORE INSERT OR DELETE OR UPDATE ON DD_Products
FOR EACH ROW
DECLARE
VAR_ChangeType CHAR(1);
BEGIN
IF INSERTING THEN VAR_ChangeType := 'I';
ELSIF UPDATING THEN VAR_ChangeType := 'U';
ELSE VAR_ChangeType := 'D';
END IF;
INSERT INTO DD_PriceChange
(
PriceChangeNo,
Change_Type,
ChangeBy,
ChangeDate,
NewProductPrice,
NewRetailPrice,
OldProductPrice,
OldRetailPrice
) VALUES (
ProductHistory_SEQ.NEXTVAL,
VAR_ChangeType,
USER,
SYSDATE,
:NEW.ProductPrice,
:NEW.RetailPrice,
:OLD.ProductPrice,
:OLD.RetailPrice
);
END product_audit;
/
SQLFIDDLE