Supprimer une partie d'une table

Résolu
Lamy -  
 Lamy -
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)

4 réponses

  1. MyTux Messages postés 228 Statut Membre 44
     
    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
  2. Lamy
     
    Je ne connais pas cette option mais ca a l'air d'être xactement ça : quelle est la syntaxe ?
    0
  3. MyTux Messages postés 228 Statut Membre 44
     
    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
  4. Lamy
     
    Génial : c'est tout simple mais ça marche : un grand merci à toi MyTux !!
    0