It [has been suggested](http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:7072180788422#7084625440626) that DDL is logically performed something like this:
begin
COMMIT;
perform any appropriate pre-DDL trigger code;
do the ddl;
perform any appropriate post-DDL trigger code;
COMMIT;
exception
when others then
ROLLBACK;
raise;
end;
Which would suggest that any error in a trigger would cause the DDL to be rolled back. Is this the case?
The answer, at least on 11.2, is "It depends":
This `create table` is rolled back:
<>https://dbfiddle.uk/?rdbms=oracle_11.2&fiddle=2dfdc24c2296a9014f6947c902b5ca46
But this `truncate` is not:
<>https://dbfiddle.uk/?rdbms=oracle_11.2&fiddle=8f0e71b119b01e441e372e7c218858f7