Lundi 7 avril 2008

Jai eu à faire ça l'autre jour, pour une table PDT_PAR appartenant au schéma PARAM, et qui était dans le tablespace PDT_DAT01S …

Un simple ‘ALTER TABLE MOVE …’ ne suffit pas, voici la marche à suivre :

  • desc pdt_par
     Name                                      Null?    Type
     —————————————– ——– —————————-
      CODE_IMAGE                                NOT NULL VARCHAR2(30)
     LIB_IMAGE                                 NOT NULL VARCHAR2(30)
     DONNEES_IMAGE                             NOT NULL BLOB
     UTIL_CREATION                             NOT NULL VARCHAR2(30)
     DATE_CREATION                             NOT NULL DATE
     UTIL_MODIFICATION                                  VARCHAR2(30)
     DATE_MODIFICATION                                  DATE
     NOM_FICHIER_IMAGE                                  VARCHAR2(2000)
     

     
  • alter table pdt_par move tablespace par_dat01s;        on déplace la table
  • select segment_name,segment_type from user_segments where tablespace_name =’PDT_DAT01S’;      mais il y a encore des ‘morceaux’ dans le mauvais tablespace !!!

SEGMENT_NAME
——————————————————————————–
SEGMENT_TYPE
——————
SYS_IL0000118818C00005$$
LOBINDEX

                            LOBSEGMENT
                               LOBSEGMENT

  • alter table pdt_par move lob(donnees_image) store as (tablespace PAR_DAT01S);    et hop, l’affaire est dans le sac.

 

Ne reste qu’à faire un rebuild des indexes de la table, qui sont tous passés à ‘UNUSABLE’ …

 

par Ora-Linux publié dans : Oracle DB 9i-10g
ajouter un commentaire commentaires (0)    recommander
Retour à la page d'accueil
faire un blog sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur avec TF1 Network - Signaler un abus