[SQL] effacer toutes les tables
Résolu
steelspirit
Messages postés
275
Date d'inscription
Statut
Membre
-
gaelgeek Messages postés 8 Statut Membre -
gaelgeek Messages postés 8 Statut Membre -
Bonjour à tous !
Je ne sais pas si c'est possible mais je souhaiterai, en sql, vider le contenue d'une base car faire des drop table nom_table c'est bien mais quand on a beaucoup de table c'est pas le top !
Merci d'avance pour votre aide
- T'as pas vu Chloraine ?
- C'est qui Chloraine ? - Ah ! Ah ! Ah !
Je ne sais pas si c'est possible mais je souhaiterai, en sql, vider le contenue d'une base car faire des drop table nom_table c'est bien mais quand on a beaucoup de table c'est pas le top !
Merci d'avance pour votre aide
- T'as pas vu Chloraine ?
- C'est qui Chloraine ? - Ah ! Ah ! Ah !
12 réponses
-
Il existe une table contenant le nom de toutes tes tables :
select table_name from user_tables;
Je ne peux pas tester ici (je veux pas risquer d'effacer toutes les tables sur lesquelles je bosser ;)), mais renseigne toi sur le SQL dynamique.
En effet :CURSOR c_mestables IS
select table_name
from user_tables;
et ensuite fairefor cur_table in c_mestables
LOOP
truncate table cur_table; -- attention au truncate : pas de rollback possible...
END LOOP;
Ca parait alléchant comme ça, mais ça ne marchera pas ;) Il te dira qu'il ne connait pas la table cur_table :). Je crois qu'il y a donc ptete une solution avec le package dbms_sql
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ? :-D-
Merde, là t'as répondu plus vite :)
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ? :-D- Petit pb : je doute que la méthode que j'ai donnée fonctionne ailleurs que sous un SGBD qui supporte le PL/SQL ... (Oracle à l'origine)... Mais sous Oracle, non : user_tables est, je crois, une vue où il n'y a que tes tables.
@++
Vous hésitez entre Linux et Windows ?
Vous voulez dépenser du temps ou de l'argent ? :-D
-