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 :

Select via un dblink sur une table sql server


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 126
    Points : 68
    Points
    68
    Par défaut Select via un dblink sur une table sql server
    Bonjour,

    j'ai un soucis pour créer une procédure stockée ORACLE qui utilise des tables d'une base SQLSERVER.

    J'ai créé un DBLINK, mis les droits côté Sql Server mais voici ce que j'obtiens :

    Quand je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * from TOTO@dblink;
    ça fonctionne, j'ai des données qui apparaissent.

    Mais sachant que les colonnes de la table TOTO côté SqlServer sont
    nom
    et
    prenom
    lorsque je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT nom from TOTO@dblink
    j'ai l'erreur suivant qui apparaît :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PLS-00201 : Identifier 'nom' must be declared
    Et pourtant j'ai bien les droits de lecture de la table puisqu'avec un
    SELECT *
    ça fonctionne !!

    Quelqu'un a déjà rencontré ce pb ??

    Bises à tous

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    A mon humble avis, l'erreur PLS-00201 est une erreur d'exécution de procédure.
    Vérifier les droits d'execution

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    Les droits d'exécutions me paraissent bons...en plus même si je fais mon SELECT en dehors d'une procédure, je ne peux pas selectionner les colonnes une à une.

    Exple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT nom from TOTO@dblink;
    donne
    ORA-00904 : Invalid column name
    Merci pour ta réponse en tout cas

  4. #4
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT "nom" from TOTO@dblink;
    ca donne quoi ?
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    Même chose...par contre je viens de m'apercevoir que si le nom de la colonne est en majhuscule ça marche...

    exple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select NOM from TOTO@dblink;
    --> OK !!
    alors que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select nom from TOTO@dblink;
    --> KO

    le pb c'est que je peux pas demander à l'application cliente (sql server) de modifier des miliers de noms de colonne !!

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    pardon je me suis embrouillée

    en fait je voulais dire que si côté sql server le nom est en majuscule alors ça marche

    après je peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select NOM from TOTO@dblink;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select nom from TOTO@dblink;
    ça marchera quand même...

    c'est que quand les noms de colonnes ne sont pas en majuscule côté sql server que ça marche plus !!

    comment dire à ORACLE de me transformer les noms (et pas le contenu) en majuscule afin qu'il reconnaisse les colonnes, par exple ??

  7. #7
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Citation Envoyé par Cathy
    ...

    c'est que quand les noms de colonnes ne sont pas en majuscule côté sql server que ça marche plus !!
    Préciser : ca ne marche plus ... (????)
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    et bien en fait quand je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select ville from TOTO@dblink;
    et que le nom de la colonne "ville" est ecrit en minsuscule sur la base sqlserver, j'ai l'erreur oracle suivante :
    ORA-00904 : Invalid column name
    donc ça ne marche plus

  9. #9
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    essaye avec un vue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CREATE VIEW v_ville as
    select * from toto@dblink
    C'est pas tres propre ( à cause du SELECT *) mais ca peut (peut_etre !) résoudre temporairement ton problème en l'attente de solutions plus nettes (paramètrage ORACLE et/ou SQL SERVER)
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  10. #10
    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
    un accès par DBLINK transforme ta requete en rajoutant des " partout.
    Les noms sont transformés en upper même entre Oracle-Oracle.
    Des alias sont aussi créés.

    un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select dummy from dual@base2
    est vu sur la base2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT "A1"."DUMMY"
      FROM "DUAL" "A1"
    Il est étonnant que la requete de Garuda ne marche pas.
    Je vais tester.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT "nom" from TOTO@dblink;
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  11. #11
    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
    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
    Base1
    CREATE TABLE WMC_TOTO ("nom" VARCHAR2(20))
     
    base2
    SELECT * FROM wmc_toto@base1
    Ok
     
    SELECT nom FROM wmc_toto@base1
    ORA-00904 invalid column name
     
    SELECT NOM FROM wmc_toto@base1
    ORA-00904 invalid column name
     
    SELECT "nom" FROM wmc_toto@base1
    Ok
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  12. #12
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    oui c'est vrai ça marche !!!

    c'est juste que j'avais mal respecté la casse exple
    VilleOrganisatrice
    et pas "villeoraganisatrice"

    Merci bcp à vous tous, c'est vraiment sympa !!

    Biz

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

Discussions similaires

  1. Historisation des modifications effectuées sur une table SQL
    Par Drooxy dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/10/2007, 13h29
  2. Réponses: 5
    Dernier message: 26/02/2007, 01h50
  3. selection comlexe de champs sur une table
    Par allowen dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/03/2006, 15h00
  4. lier une table Sql Server sur Access
    Par JerBi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/01/2006, 16h27
  5. Pooling sur une table SQL
    Par Jean-Jacques Engels dans le forum Bases de données
    Réponses: 5
    Dernier message: 04/11/2004, 23h10

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