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

Interfaces de programmation Oracle Discussion :

Problème en perl avec requête sous Oracle : ORA-00942 ?


Sujet :

Interfaces de programmation Oracle

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut Problème en perl avec requête sous Oracle : ORA-00942 ?
    Bonjour à tous,

    Je travaille sous Unix, avec Perl 5.16.3, et une base de données Oracle dont j'ignore la version.
    Pour le travail, je dois faire un script en Perl qui interroge une base de données Oracle.
    Je fais donc un fichier de test de connexion et une requête select basique.

    Or là, la connexion se fait bien, mais avec pour la requête, j'al l'erreur suivante :
    ORA-00942 : Table ou vue inexistante (DBD ERROR: error possibly near <*> indicator
    Et il me met effectivement l'incator juste avant le nom de ma table.
    Le soucis, c'est que le nom de la table est correct.
    J'ai à priori tout essaye :
    - minuscule et majuscule
    - en mettant le nom du schema devant...

    Rien n'y fait.

    Voici le code Perl:
    Code Perl : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    my $sql_select = << "SQL";
        select *
        FROM STORE.STORE_RIU
    SQL
     
    my $prep = $bdd->prepare($sql_select) or die $bdd->errstr;
     
    $prep->execute;
     
    # affichage
    while (my($id, $role, $nom, $prenom) = $prep->fetchrow_array ) {
        print $id . '. ' . $role . "\n";
    }


    Si l'un de vous aurait une idée, ça serait sympa.

    Merci d'avance.
    Cordialement
    Dominique

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Pour la version de votre base de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from sys.v$version
    Vérifiez bien le nom de votre table tel qu'il est enregistré dans le dictionnaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select owner, table_name
      from all_tables
     where owner                = 'STORE'
       and upper(table_name) like '%RIU%';
    S'il y a des caractères minuscules / majuscules ou exotiques, il faut encadrer le nom de la table par des double quote.

    Le mieux étant de vous connecter avec un client SQL comme SQL Developer pour faire vos vérifications.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Merci de votre aide, mais
    - pour la requête pour avoir la version , j'ai le message d'erreur ORA-00942
    - pour la deuxième requête, ça m'a juste confirmé que j'avais le bon nom de table dans la requête.

    Cordialement
    Dominique

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Vous n'avez probablement pas le privilège de lecture sur cette table avec le compte que vous utilisez.

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Le problème vient peut être du select *.
    As-tu essayé en donnant la liste des colonnes que tu veux consulter ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  6. #6
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from sys.v$version ;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from v$version ;
    pour taper sur le synonyme public.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Vous n'avez probablement pas le privilège de lecture sur cette table avec le compte que vous utilisez.
    Impossible.
    J'ai le compte propriétaires qui permet de créer des tables.
    Et j'ai accès à cette table via TOADS.

    Cordialement
    Dominique

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Le problème vient peut être du select *.
    As-tu essayé en donnant la liste des colonnes que tu veux consulter ?
    Oui, pas mieux.

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par Ikebukuro Voir le message
    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from sys.v$version ;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from v$version ;
    pour taper sur le synonyme public.
    ça a fonctionné, je suis sous Oracle 12c

  10. #10
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Est-ce que le user STORE existe bien? Exécute ce code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT username, account_status FROM dba_users ORDER BY username;
    Es-tu sur la bonne base et, si oui, es-tu en architecture PDB?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT name, cdb FROM v$database;
    Autre test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT owner, object_name, object_type FROM dba_objects WHERE UPPER(object_name) LIKE '%STORE%RIU%';
    Et, le dernier pour la route :
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Pour information,

    Je précise que la même requête passe très bien avec l'outils TOADS.

    Cordialement
    Dominique

  12. #12
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Le script perl fonctionne ?
    Essaye avec un select * from dual dans ton script perl
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    ça renvoi X.

  14. #14
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    C'est donc bien un problème de droit, tu es sûr d'être loggué avec le même utilisateur entre TOAD et PERL fais un , parce que c'est franchement bizarre sinon.
    Ensuite faut voir les grants sur la table, et les droits utilisateur
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  15. #15
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Citation Envoyé par McM Voir le message
    C'est donc bien un problème de droit, tu es sûr d'être loggué avec le même utilisateur entre TOAD et PERL fais un , parce que c'est franchement bizarre sinon.
    Ensuite faut voir les grants sur la table, et les droits utilisateur
    Si ça passe avec TOAD mais pas en PERL, je pense qu'il ne se connecte pas à la bonne base de données, d'où les SELECT que je lui demande d'exécuter.

    Ah, effectivement, il peut être connecté sur la bonne base mais avec un user différent...
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    alors oui, je sais que c'est bizarre..ceci dit, vos réponses me permettent tout de même d'avancer...
    J'avais vu trainer cette table DUAL dans un autre script perl et je ne savais pas ce que c'était... à présent, je sais un peu plus.

    Et oui, j'ai les droits suffisant vu que j'ai même crée une table dans cette base avec TOAD.

    Oui, je sais que c'est bizarre...d'où ma présence ici

    Merci bien à vous tous en tout cas.
    Cordialement
    Dominique

  17. #17
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Et quels sont les retours des SELECTs que je t'ai donnés?
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    je viens de faire select user from dual
    dans TOADS et dans mon perl

    Et effectivement, je n'ai pas le même utilisateur.

    Donc ça doit être ça...j'ai pourtant repris la chaine de connexion d'un autre script perl ici...comme quoi.
    Je vais essayer de voir ça.

    Merci beaucoup
    Cordialement

  19. #19
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Je n'insisterais pas plus mais si ta base est en 12c non CDB ou en 12c CDB, la connexion ne se fait pas de la même façon... d'où le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT name, CDB from v$database;
    Tu as vu que le user était différent mais es-tu connecté à la bonne base?
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    TOADS me dit : table ou vue inexistante.

    Cordialement
    Dominique

Discussions similaires

  1. Problème avec l'erreur Oracle ORA-19025
    Par bernidupont dans le forum SQL
    Réponses: 2
    Dernier message: 19/07/2011, 10h09
  2. Problème de requête sous Oracle
    Par tukutt dans le forum SGBD
    Réponses: 1
    Dernier message: 23/05/2008, 09h37
  3. problème d'exécution de requêtes sous oracle 9i
    Par loukili81 dans le forum Oracle
    Réponses: 3
    Dernier message: 12/07/2007, 11h24
  4. Problème avec NVL sous ORACLE
    Par tchoimars dans le forum SQL
    Réponses: 4
    Dernier message: 21/05/2007, 16h35
  5. problème de liens avec API sous VC++
    Par xavynfive dans le forum MFC
    Réponses: 7
    Dernier message: 26/08/2005, 12h01

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