Salut,
Je travaille sur Oracle 10g et je souhaitais connaitre la meilleure maniere de vider les tables d'un seul user sans effacer rien de la structure.
La colonne TRUNCATE ne vide qu'une seule table, n'est ce pas ?
Merci d'avance
Mario
Salut,
Je travaille sur Oracle 10g et je souhaitais connaitre la meilleure maniere de vider les tables d'un seul user sans effacer rien de la structure.
La colonne TRUNCATE ne vide qu'une seule table, n'est ce pas ?
Merci d'avance
Mario
boucle FOR sur all_tables en filtrant sur le schema, et EXECUTE IMMEDIATE pour désactiver les contraintes et faire le truncate![]()
ca pourrait etre un truc du genre ?
Ca m'efface bien les donnees des tables du user MAP sans effacer rien de la structure ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 BEGIN FOR i IN (SELECT * FROM all_tables WHERE owner = 'MAP') LOOP EXECUTE IMMEDIATE('TRUNCATE TABLE '||i.table_owner||'.'||i.table_name); END LOOP; END;
oui, mais il faut désactiver les contraintes d'abordFAQ
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 BEGIN FOR i IN (SELECT * FROM all_tables WHERE owner = 'MAP') LOOP EXECUTE IMMEDIATE('DISABLE NOVALIDATE TABLE '||i.table_owner||'.'||i.table_name); EXECUTE IMMEDIATE('TRUNCATE TABLE '||i.table_owner||'.'||i.table_name); EXECUTE IMMEDIATE('ENABLE NOVALIDATE TABLE '||i.table_owner||'.'||i.table_name); END LOOP; END;
Partager