В Oracle TRUNCATE TABLE - это оператор DDL, который нельзя использовать в транзакции (или, точнее, нельзя откатить). AFAIK, если при выполнении оператора выполняется транзакция, транзакция фиксируется, а затем выполняется TRUNCATE, и ее нельзя отменить.
В Informix поведение TRUNCATE немного отличается; вы можете использовать TRUNCATE в транзакции, но после этого допустимы только операторы COMMIT и ROLLBACK.
Другие СУБД, вероятно, имеют свои идиосинкразические интерпретации поведения TRUNCATE TABLE.