Supprimer une partie d'une table

Résolu/Fermé
Lamy - 14 déc. 2010 à 13:43
 Lamy - 14 déc. 2010 à 15:08
Bonjour,
Lors d'une suppression de 7milions d'enregistrements dans une table j'obtiens le message suivant ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'.
N'ayant pas la main ni l'envie de retailler mes TS : je recherche un ordre de delete pour supprimer ces enregistrement par paquet par exemple d'un million.
Comment faire ?
Si quelqu'un a une idée je suis preneur !
(Oracle 10g)

A voir également:

4 réponses

MyTux Messages postés 222 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 26 mars 2013 44
Modifié par MyTux le 14/12/2010 à 13:46
Bonjour,

N'as tu pas la possibilité de mettre tout bêtement l'instruction LIMIT 1000 ( par exemple après à toi de voir combien tu mets) . Dans ta requête SQL, puis ensuite adapter cela à une procédure?

Bien à toi,
MyTux.
0
Je ne connais pas cette option mais ca a l'air d'être xactement ça : quelle est la syntaxe ?
0
MyTux Messages postés 222 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 26 mars 2013 44
14 déc. 2010 à 14:46
Bonjour,

la Query SQL:
 DELETE FROM table_name LIMIT ta_limit;


En revanche n'étant pas DBA, je ne pourrais pas te faire la procédure qui te ferait ça. Mais en cherchant un peu de doc sur le PL/SQL tu devrais y arriver.

Ou alors si tu veux pas le faire en script tu le fais à la main n fois de suite c'est pas propre, mais ça à le mérite de marcher.

Bien à toi,
MyTux.
0
Génial : c'est tout simple mais ça marche : un grand merci à toi MyTux !!
0