Seules les commandes du DML sont commitable et rollbackable. A contrario, les commandes DDL génére un COMMIT implicite avant la commande et un autre après la commande. Si la commande DDL plante, le COMMIT implicite est quand même effectué. Il existe tout de même une commande Oracle qui permet de rollbacker un create table, un create view ou un grant. C’est la commande CREATE SCHEMA AUTHORIZATION. Contrairement à ce qu’elle évoque elle ne crée par un schéma, elle permet plutôt de la peupler de tables, de vues et de grants.
Exemple :
connect MARCO/MARCO
CREATE SCHEMA AUTHORIZATION MARCO
create table t (col char(1))
create table tt (col char(1));
Si la table tt existe, alors la commande plante, et aucune des deux tables t et tt ne sont :créé.
Cette fonctionnalité ne permet de créer, rappelons-le, que des tables et des vues et de granter de droits.