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

Oracle Discussion :

Problème d'accès aux tables d'un schéma


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 76
    Points : 61
    Points
    61
    Par défaut Problème d'accès aux tables d'un schéma
    Bonjour à tous,

    J'ai de nouveau besoin de vos lumières...
    Je travaille sous oracle 9.2.0.7, et je tentais de mettre en place un script pour calculer les statistiques.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select 'exec DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => '''|| owner
                             || '''  , TABNAME => ''' || table_name  || '''  , CASCADE => TRUE );'
    from dba_tables
    where owner='PSNEXT';
    Voici l'erreur que j'obtiens pour une table donnée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ERREUR à la ligne 1 :
    ORA-20000: Unable to analyze TABLE "PSNEXT"."WORKPACKAGE", insufficient
    privileges or does not exist
    ORA-06512: à "SYS.DBMS_STATS", ligne 10292
    ORA-06512: à "SYS.DBMS_STATS", ligne 10315
    ORA-06512: à ligne 1
    Je tente un desc de la table en question, mais j'obtiens l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORA-04043: objet PSNEXT.WORKPACKAGE inexistant
    Précision : j'ai les mêmes symptomes que ce soit en tant que sys ou bien en tant que l'utilisateur propriétaire du schéma.
    Par contre, sous TOAD, quand je me connecte en tant qu'un de ces 2 utilisateurs, via le schéma browser, je vois tout : donnée + description des objets.

    merci d'avance pour vos idées

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    En général, s'il faut exécuter DBMS_STATS sur des objets qui appartiennent à des propriétaires différents, en plus du privilége SELECT sur les tables concernées, il faut avoir le privilège système ANALYZE ANY. En tout cas, SYS devrait forcément avoir le privilège ANALYZE ANY.

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 76
    Points : 61
    Points
    61
    Par défaut
    Oui, je tente bien de lancer l'analyse en tant que sys.
    Cependant, on vient de se rendre compte que ce cher sqlplus (pour cette base uniquement) était Case sensitive...
    Sauf que quand je genère automatiquement la liste des tables à analyser, le nom de tous les objets apparait en majuscule...

  4. #4
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Ce n'est pas vraiment SQL*Plus qui est "case sensitive", c'est le dictionnaire Oracle qui l'est par défaut: tous les objets sont enregistrés en majuscule sauf si vous utilisez les " (double quote) dans le nom de l'objet lors de sa création.

  5. #5
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 76
    Points : 61
    Points
    61
    Par défaut
    aaah ! Merci pour l'info, je ne savais pas que c'était le Dictionnaire qui est case sensitive
    Une solution serait de recréer les tables en majuscules... ?

    En tout cas, merci pour votre aide

  6. #6
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Une solution serait de recréer les tables en majuscules... ?
    Non, c'est ce qui est fait par défaut.

    Les règles du SQL Oracle sont les suivantes:
    Case is insignificant in reserved words, keywords, identifiers and parameters. However, case is significant in text literals and quoted names.
    Pouvez-vous donner une exemple du problème ?

    Que donne dans SQL*Plus ?

  7. #7
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 76
    Points : 61
    Points
    61
    Par défaut
    Pouvez-vous donner une exemple du problème ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PSNext >desc PSNEXT.TrainingDomain ;
    ERROR:
    ORA-04043: objet PSNEXT.TrainingDomain  inexistant
    alors qu'avec les guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    PSNext >desc PSNEXT."TrainingDomain";
     Nom                                       NULL ?   Type
     ----------------------------------------- -------- ----------------------------
     Ordinal                                   NOT NULL NUMBER(10)
     ID                                                 VARCHAR2(100)
     ExpireDate                                         DATE
     InternalVersion                                    NUMBER(10)
     SessionID                                          NUMBER(19)
    Pour le 'show sqlcase' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PSNextRc >show sqlcase
    sqlcase MIXED
    Merci

  8. #8
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Dans ce cas, pour avoir des noms d'objets non sensibles à la casse, oui, il faudrait recréer vos objets sans les " (double quotes).

  9. #9
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 76
    Points : 61
    Points
    61
    Par défaut
    Je n'ai plus qu'à tout recréer correctement sur notre base de test avant de faire la modification sur celle de production...

    Une fois de plus merci et bon week end

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

Discussions similaires

  1. [AC-2010] Problèmes d'acces aux enregistrement d'une table.
    Par Jeanpierre71 dans le forum IHM
    Réponses: 3
    Dernier message: 25/10/2013, 13h27
  2. Problème d'accès aux tables My SQL
    Par thanmirt dans le forum MySQL
    Réponses: 9
    Dernier message: 19/11/2010, 19h51
  3. Réponses: 2
    Dernier message: 14/01/2009, 11h44
  4. J'ai un problème dans l'accès aux tables
    Par yashiro41281 dans le forum Bases de données
    Réponses: 9
    Dernier message: 05/09/2007, 15h51
  5. [TOMCAT] JSP problème d'accès aux méthodes d'une classes
    Par gunnm dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 22/05/2004, 15h02

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