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 :

Erreur dbms_stat sur partition


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 16
    Par défaut Erreur dbms_stat sur partition
    Bonjour à tous et merci d'avance de consacrer un peu de votre temps à mon petit souci

    J'essaie de déclarer une variable avec la valeur de la partition courante.
    Grosso modo, si je lance cette commande, ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Begin
    dbms_stats.gather_table_stats(ownname=>'MANAG',tabname=>'HEADCOUNT_TOTAL',partname=>'"201010"',cascade=>true,DEGREE=> 2 ,METHOD_OPT => 'FOR ALL COLUMNS SIZE 1', granularity=>'PARTITION');
    end;
     /
    C'est une table partitionnée par List et les partitions sont déclarées avec des " ".

    Par contre, si j'essaie de remplacer le nom de la partition en passant par une variable, j'obtiens :
    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
     
    set serveroutput on 
    Declare max_partition varchar2(32) :=201010;
    Begin
    dbms_output.put_line(max_partition); 
    dbms_stats.gather_table_stats(ownname=>'MANAG',tabname=>'HEADCOUNT_TOTAL',partname=>'"max_partition"',cascade=>true,DEGREE=> 2 ,METHOD_OPT => 'FOR ALL COLUMNS SIZE 1', granularity=>'PARTITION');
    end;
     / 
    201010
    Declare max_partition varchar2(32) :=201010;
    *
    ERROR at line 1:
    ORA-20000: max_partition invalid partition name
    ORA-06512: at "SYS.DBMS_STATS", line 13437
    ORA-06512: at "SYS.DBMS_STATS", line 13457
    ORA-06512: at line 4
    L'erreur doit se situer au niveaux des doubles ou des simples quotes mais j'avoue avoir tout essayé et être un perdue...
    Help please

  2. #2
    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
    Vos erreurs :
    1. vous déclarez un varchar et vous inscrivez un nombre à l'intérieur.
    2. puis vous passez en argument le nom de la variable au lieu de passer la variable directement.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 16
    Par défaut
    Ok J'ai compris
    Désolée mais j'administre plus les bases que je ne développe.
    Donc le bon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    set serveroutput on 
    Declare max_partition varchar2(32) :='201010';
    Begin
    dbms_output.put_line(max_partition); 
    dbms_stats.gather_table_stats(ownname=>'MANAG',tabname=>'HEADCOUNT_TOTAL',partname=>'"'||max_partition||'"',cascade=>true,DEGREE=> 2 ,METHOD_OPT => 'FOR ALL COLUMNS SIZE 1', granularity=>'PARTITION');
    end;
     /
    Thanks

  4. #4
    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
    Ou encore plus simplement :
    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
    declare
      max_partition varchar2(32) := '"201010"';
    begin
      dbms_output.put_line(max_partition);
      dbms_stats.gather_table_stats
      (
        ownname     => 'MANAG',
        tabname     => 'HEADCOUNT_TOTAL',
        partname    => max_partition,
        cascade     => true,
        DEGREE      => 2,
        METHOD_OPT  => 'FOR ALL COLUMNS SIZE 1',
        granularity => 'PARTITION'
      );
    end;
    /

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur Package DBMS_STAT sur SUBPARTITION
    Par glutock dans le forum SQL
    Réponses: 2
    Dernier message: 28/04/2008, 00h45
  2. Erreur 145 sur table mysql
    Par ramses83 dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/09/2007, 21h09
  3. Réponses: 9
    Dernier message: 27/04/2004, 11h01
  4. Slice sur Partitions
    Par Guizz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/07/2003, 17h45
  5. [VB6] Erreur 9 sur redim preserve
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/10/2002, 17h29

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