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 :

[Oracle 10g] Table ou vue inexistante


Sujet :

Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 160
    Points : 89
    Points
    89
    Par défaut [Oracle 10g] Table ou vue inexistante
    Bonjour à tous,

    Mon problème est simple, mais je ne me rappelle tout simplement plus de la solution !

    Mon application accède à une base Oracle 10g via un fichier UDL. Une requête du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM matable WHERE champ1='valeur1'
    renvoie une erreur "Table ou vue inexistante" alors que la même requête avec le préfixe tablespace devant le nom de table fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM tablespace.matable WHERE champ1='valeur1'
    Je sais qu'il est possible de faire une manipulation sur la base de telle manière que la première requête fonctionne, seulement je ne me rappelle plus laquelle.

    Quelqu'un aurait-il une idée? D'avance merci.

  2. #2
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut
    Bonjour,
    Tu dois créer un synonyme sur ta table que tu veux que ta deuxiéme requête fonctionne.
    Cdlt,
    LBO72.

  3. #3
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut
    et d'ailleur ce n'est pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM tablespace.matable WHERE champ1='valeur1'
    Mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM owner.matable WHERE champ1='valeur1'
    Cdlt,
    LBO72.

  4. #4
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Points : 1 359
    Points
    1 359
    Par défaut
    Citation Envoyé par LBO72 Voir le message
    Bonjour,
    Tu dois créer un synonyme sur ta table que tu veux que ta deuxiéme requête fonctionne.
    Cdlt,
    LBO72.
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alter session set current_schema=non_schema;
    si vous ne voulez pas créer des synonymes.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 160
    Points : 89
    Points
    89
    Par défaut
    Bonjour,

    Merci pour votre réponse mais la deuxième fonctionne d'ores et déjà. Il faut que ce soit la première qui fonctionne.

    De plus, la tentative de création de synonyme suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create synonym matable for tablespace.matable;
    renvoie l'erreur "cannot create a synonym with same name as object".

    En attendant d'autres avis/idées.
    Merci

    Edit @Mohamed : je ne peux pas utiliser le nom de schéma en dur car je ne le connais pas. Plusieurs schémas ont strictement la même structure, et je veux simplement taper dans le bon schéma selon le user connecté. Je sais que la solution existe, et désolé si mes explications ne sont pas claires...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 72
    Points : 84
    Points
    84
    Par défaut
    Bonjour,

    En fait l'assertion suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CREATE synonym matable FOR tablespace.matable;
    n'a pas de sens : un nom d'objet peut se préfixer par un nom de schéma, mais pas par un nom de tablespace.

    Pour que la création de synonyme fonctionne, tu dois te placer dans le schéma où tu veux créer le synonyme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER session SET current_schema=mon_schema2;
    CREATE synonym matable FOR mon_schema1.matable;
    ou sinon préfixer le synonyme lors de sa création :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CREATE synonym mon_schema2.matable FOR mon_schema1.matable;

Discussions similaires

  1. ORA-00942 Table ou vue inexistante
    Par BONNEFOI Patrick dans le forum Oracle
    Réponses: 9
    Dernier message: 02/10/2014, 14h40
  2. Table ou vue inexistante oracle9
    Par jacques64 dans le forum SQL
    Réponses: 2
    Dernier message: 05/10/2007, 17h04
  3. ORA-00942 Table ou vue inexistante
    Par mullger dans le forum SQL
    Réponses: 8
    Dernier message: 10/09/2007, 19h01
  4. ora-000942 : table ou vue inexistante
    Par ghuldan dans le forum Administration
    Réponses: 5
    Dernier message: 17/04/2007, 14h58
  5. Réponses: 2
    Dernier message: 24/01/2005, 16h13

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