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 "Table inexistante" alors que le table existe


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Par défaut Erreur "Table inexistante" alors que le table existe
    Bonjour,

    J'ai un problème sur ma base Orcale 9i quand j'exécute un script qui crée une fonction. Oracle me dit PL/SQL: ORA-00942: Table ou vue inexistante alors que les tables existent. Quand je passe les requêtes du script une par une, il n'y a aucune erreur.
    Quelqu'un a t'il déjà eu ce problème ?

    Merci.

    Sylvain

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    la table est dans un autre schéma que l'utilisateur avec lequel tu es connecté surment ? Sinon, regarde si tu n'aurais pas un synonyme ou une vue qui pointerait sur une table que tu ne peux pas voir

  3. #3
    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
    Quand tu passes les requêtes une par une, c'est bien avec le même compte Oracle que celui avec lequel tu lances ton script ?

    Généralement quand tu as ce message d'erreur, c'est :
    - soit que la table n'existe pas dans ton schéma (vérifie que le compte utilisé est bien le propriétaire de la table)
    - soit qu'elle existe dans un autre schéma, que tu as les droits de lecture dessus mais que tu as oublié de préfixer le nom de la table par le nom du schéma
    - soit qu'elle existe dans un autre schéma mais que tu n'as pas les droits de lecture dessus
    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/

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par scheu
    - soit qu'elle existe dans un autre schéma mais que tu n'as pas les droits de lecture dessus
    dans ce cas se serait l'erreur ORA-01031: insufficient privileges non ?

  5. #5
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Par défaut
    Le script et les requêtes sont bien lancés avec le même utilisateur.
    J'ai effectivement 2 schémas mais la table est bien préfixé avec le schéma dans la requête et le script.
    L'utilisateur connecté à les droits en lecture sur la table du deuxième schéma.

    Je suis pas du tout expert mais si une requête simple fonctionne, elle devrait aussi fonctionner dans un script non ?

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    ça dépend. Le PL/SQL ne tiens pas compte des rôles. Donc si tu as autorisé SELECT ANY TABLE, ça ne suffit pas, il faut faire un GRANT SELECT

  7. #7
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Par défaut
    D'après Toad j'ai la ligne suivante pour la table REUNION_OP, LEGIS étant le user avec lequel je suis connecté

    GRANT SELECT ON REUNION_OP TO LEGIS;

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

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select owner from dba_tables where table_name = 'REUNION_OP'

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/08/2007, 11h32
  2. no such table: carte alors que cette table existe
    Par Bubble724 dans le forum SQLite
    Réponses: 3
    Dernier message: 13/07/2007, 22h04
  3. [MySQL] réponse vide alors que le champs existe dans la table, sans retour d'erreur
    Par ben_skywalker dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/02/2007, 14h20
  4. Réponses: 12
    Dernier message: 21/01/2006, 19h27

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