IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

De table partitionnée à table non partitionnée


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 40
    Points : 34
    Points
    34
    Par défaut De table partitionnée à table non partitionnée
    Quel est le meilleur moyen de supprimer le partitionnement d'une table (pas le contenu)?


    Pour l'instant ,voici comment je procède (la table T1 est partitionnée .):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DROP TABLE T1_TMP;
    CREATE TABLE T1_TMP (C1 VARCHAR2(10),C2 VARCHAR2(10),....,CN VARCHAR2(10),PRIMARY KEY (C1,C2,C3,C4,C5)) NOLOGGING;
    INSERT INTO T1_TMP SELECT * FROM T1;
    DROP TABLE T1;
    ALTER TABLE T1_TMP RENAME TO T1;

  2. #2
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    pour ne pas générer d'undo ni de redo.
    Voire même insert en parallel DML.
    Penser à enlever NOLOGGING par la suite.
    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 52
    Points : 19
    Points
    19
    Par défaut
    il faut peut-être aussi désactiver les contraintes avant de procéder à la création de la nouvelle table non partitionnée et au drop de la table partitionnée ..

    ... puis après avoir renommé la nouvelle table, réactiver les contraintes , non ?

  4. #4
    Membre éclairé Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Points : 724
    Points
    724
    Par défaut
    Hello,

    Utiliser dbms_redefinition.

    http://docs.oracle.com/cd/B28359_01/...i.htm#CBBFDJBC

    jko
    OCM 11g, RAC and Performance & Tuning Expert 11g
    RMAN Backup & Recovery, Data Guard and Grid Control

  5. #5
    Membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2004
    Messages : 46
    Points : 43
    Points
    43
    Par défaut redefinition de table partitionnee : tablespace et redefinition d'index
    bonjour
    j'utilise DBMS_REDEFINITION pour faire cette manip, mais cela ne marche pas correctement

    1) apres redefinition, la table se trouve dans le DEFAULT TABLESPACE (et pas dans son TS d'origine)

    2) la table a un index local qui est perdu apres la redefinition. Quelle que soit la valeur du parametre "copy_indexes" , j'ai l'erreur
    ORA-14016: underlying table of a LOCAL partitioned index must be partitionedmais aucun ne fonctionne.
    y a-t-il un moyen de modifier la redefinition de l'index, ou bien il faut le recreer apres
    Si vous avez des reponses a ces problemes, merci d'avance.

    voici les 2 blocs principaux
    DBMS_REDEFINITION.START_REDEF_TABLE( uname =>vTableOwner,
    orig_table =>vX.TABLE_NAME,
    int_table =>vIntTable,
    options_flag =>DBMS_REDEFINITION.CONS_USE_ROWID );

    DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS(
    num_errors=>vNumErrors,
    uname=>vTableOwner,
    orig_table=>vX.TABLE_NAME, -- table source
    int_table=>vIntTable, -- table interim
    copy_indexes=> DBMS_REDEFINITION.CONS_ORIG_PARAMS,
    copy_triggers=>TRUE,
    copy_constraints=>TRUE,
    copy_privileges=>TRUE,
    ignore_errors=>TRUE);
    Isa

Discussions similaires

  1. [WD17] Table dans table dans table je pense ?!
    Par franck34matlab dans le forum WinDev
    Réponses: 8
    Dernier message: 08/07/2014, 14h06
  2. Partitionnement d'une table non partitionnée
    Par al1_24 dans le forum Administration
    Réponses: 2
    Dernier message: 10/04/2012, 17h20
  3. type partitionnement tables
    Par diaxlee dans le forum Administration
    Réponses: 1
    Dernier message: 21/01/2008, 16h06
  4. Partitionnement table avec import
    Par achabane dans le forum Oracle
    Réponses: 1
    Dernier message: 11/01/2007, 17h24
  5. Réponses: 1
    Dernier message: 27/03/2006, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo