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 :

Partitionning oracle indépendant de l'annee


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 8
    Par défaut Partitionning oracle indépendant de l'annee
    Bonjour

    Je cherche a faire des partitions sur un db sous oracle, avec des partitions par mois, independant de l'annee...

    Qqun a une idee de comment je pourrais faire ? et quelle commande executer avec ma creation de table poru le partitionnement...

    (en gros un truc comme ca, mais ca, ca ne marche pas : )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    CREATE TABLE xxxx (
    ...
    )
    ORGANIZATION INDEX
    PARTITION BY LIST (DEPARTUREDATE)
    (
    PARTITION JAN01 VALUES('%%-JAN-%%%%'),
    PARTITION FEB02 VALUES('%%-FEB-%%%%'),
    PARTITION MAR03 VALUES('%%-MAR-%%%%'),
    PARTITION APR04 VALUES('%%-APR-%%%%'),
    PARTITION MAY05 VALUES('%%-MAY-%%%%'),
    PARTITION JUN06 VALUES('%%-JUN-%%%%'),
    PARTITION JUL07 VALUES('%%-JUL-%%%%'),
    PARTITION AUG08 VALUES('%%-AUG-%%%%'),
    PARTITION SEP09 VALUES('%%-SEP-%%%%'),
    PARTITION OCT10 VALUES('%%-OCT-%%%%'),
    PARTITION NOV11 VALUES('%%-NOV-%%%%'),
    PARTITION DEC12 VALUES('%%-DEC-%%%%')
    );
    (je veux pas les annees car on se fiche, on vide le mois precedent el 3ieme du mois d'apres... et on a jamais plus d'une annee de donnee... )


    Merci

  2. #2
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Ben tu crées dans ta table deux colonnes distinctes mois et année, et tu partitionnes sur la colonne mois
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 8
    Par défaut
    le soucis est que DEPARTUREDATE est declare comme ceci:

    DEPARTUREDATE DATE NOT NULL,

    et ca je ne peux pas le changer :/

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    tu ajoutes une colonne qu'un trigger viendra mettre à jour quand DEPARTUREDATE sera renseigné et voilou

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 8
    Par défaut
    Je ne peux egalement pas rajouter de colonne a ma table...

    Je dois m'en sortir avec des partitions, c'est pas possible ?

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Est-ce possible de créer la partition sur une fonction ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    PARTITION BY LIST (TO_CHAR(DEPARTUREDATE, 'MM'))
    (
    PARTITION JAN01 VALUES('01'),
    PARTITION FEB02 VALUES('02'),
    ...

  7. #7
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    non

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 8
    Par défaut
    c'etait vraiment une bonne idee Waldar, mais je viens de la tester, et ca ne donne rien de concluant :S

    Une erreur a l'execution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PARTITION BY LIST(TO_CHAR(DEPARTUREDATE,'MM'))
                             *
    ERROR at line 16:
    ORA-00907: missing right parenthesis

  9. #9
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Il n'y a aucun moyen de rajouter une colonne virtuelle dans le script de création de table qui renvoie le mois, puis de faire la partition dessus ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE xxxx
    (
    ...
    DEPARTUREMONTH  CHAR(2) AS TO_CHAR(DEPARTUREDATE,'MM')
    )
    ORGANIZATION INDEX
    PARTITION BY LIST (DEPARTUREMONTH)
    (
    PARTITION JAN01 VALUES('01'),
    PARTITION FEB02 VALUES('02'),
    ...

  10. #10
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    pourquoi une colonne virtuelle ? Qu'est-ce qui empêche de créer une vraie colonne ?

    Au pire il y a la solution de renommer la table tatable_part et créer une vue tatable qui exclu la colonne supplémentaire.

  11. #11
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par orafrance Voir le message
    pourquoi une colonne virtuelle ? Qu'est-ce qui empêche de créer une vraie colonne ?
    Cette réponse-là :
    Citation Envoyé par kgandalf8 Voir le message
    Je ne peux egalement pas rajouter de colonne a ma table...
    L'avantage de la colonne virtuelle est son auto-population, qui n'entraine pas de modification sur les requêtes d'insertion ou d'extraction vers ou depuis cette table.

    C'est une proposition, peut-être cette solution n'est pas non plus envisageable.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 8
    Par défaut
    Tout d'abord merci poru votre aide... la creation de la 2ieme colonne avec le as ne marche pas.
    Je vais donc partitionner avec la date incorporant l'annee et faire un script pour creer de nouvelle partition et supprimer les anciennes...

    merci

  13. #13
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Dommage. Sur quelle version d'Oracle travaillez-vous ?

  14. #14
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Citation Envoyé par kgandalf8 Voir le message
    le soucis est que DEPARTUREDATE est declare comme ceci:

    DEPARTUREDATE DATE NOT NULL,

    et ca je ne peux pas le changer :/
    Ca sent le problème de conception ... Pourquoi avoir créé une seule colonne date si c'est pour vouloir partitionner sur le mois mais pas l'année ...
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 8
    Par défaut
    @Waldar sur oracle 9.2.0.x et 10.x

    @scheu pas forcement... sur mysql tu peux faire du partitionning par mois independant de l'annee... pas sous oracle... oracle qui est mal foutu

Discussions similaires

  1. Partition Oracle champ avec beaucoup d'occurences
    Par almarick dans le forum Oracle
    Réponses: 1
    Dernier message: 06/03/2015, 11h54
  2. Partitioning Oracle 9i
    Par jf4db dans le forum Administration
    Réponses: 2
    Dernier message: 17/07/2009, 10h39
  3. Table - Partition - Oracle 9.2.0.1
    Par Scrouik dans le forum Oracle
    Réponses: 11
    Dernier message: 08/01/2008, 13h12
  4. option partitioning oracle
    Par anicethu dans le forum Administration
    Réponses: 3
    Dernier message: 08/08/2007, 10h19
  5. [Oracle 9.2.0.7] Comment updater sur des clés de partition ?
    Par le_nullos_des_nullos dans le forum Oracle
    Réponses: 3
    Dernier message: 05/02/2006, 00h26

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