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

Administration Oracle Discussion :

Faire dialoguer une base Oracle et une base PostGres


Sujet :

Administration Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Points : 68
    Points
    68
    Par défaut Faire dialoguer une base Oracle et une base PostGres
    Bonjour,

    En l'absence d'ETL, j'ai besoin de faire communiquer ma base ORACLE 10g (pour un projet décisionnel) avec une base PostGres 8 (base métier client) afin d'alimenter ma base ORACLE avec les tables de ma base PostGres.
    Je souhaite faire cela le plus simplement possible (enfin si c'est possible.... )

    Les deux bases sont sur deux serveurs différents.

    N'ayant jamais installé de base, que doit-on faire ? Quel type de "lien" installer pour que cela fonctionne ?

    Je ne sais pas si ma demande est très claire mais n'hésitez pas à me poser des questions, j'essaierai d'y répondre au mieux de mes connaissances

    Merci de votre aide à tous
    Darcynette

  2. #2
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 357
    Points : 280
    Points
    280
    Par défaut
    si ta base oracle est sur un serveur windows et que il existe un driver odbc pour postgresql alors tu peux y arriver assez facielement avec un dblink utilisant le service hsodbc.

    Regarde si les deux condition sont bonnes et je peux t expliquer plus en detail

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Points : 68
    Points
    68
    Par défaut
    Merci pour ta réponse !
    La base Oracle sera sur un serveur Windows 2003, ca c'est sur.
    Pour le reste des informations, dès que j'ai tout, je ne manquerai de venir poster les infos pour une aide bienvenue !

  4. #4
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 357
    Points : 280
    Points
    280
    Par défaut
    tu ne devrai pouvoir y arriver , regarde ici pour le lien odbc

    http://www.developer.com/open/article.php/631251

    et ci dessous un copier coller d une doc pour faire dialoguer oracle avec mysql , adapte un peu pour postgre


    1) installe sur le serveur le driver odbc mysql 3.51

    2) cree un lien odbc vers ta base mysql

    Datasourcename : MYDATASOURCENAME
    server : ip mysql
    user : MyUser
    password : MyPass

    3)

    Rajoute la section suivante dans ton listener.ora et redemarre le listener via les services windows ou en ligne de comande (pas net manager!!)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    (SID_DESC =
          (PROGRAM              = hsodbc)
          (ORACLE_HOME          = C:\oracle\10.2.0\db)
          (SID_NAME             = myodbc3)
          (ENVS=LD_LIBRARY_PATH = C:\oracle\10.2.0\db\lib;c:\windows\system32;c:\windows)
         )
    4) rajoute la section suivante dans ton tnsnames.ora

    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
    16
     
     
    HSODBC =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS =
            (PROTOCOL = TCP)
            (HOST = localhost)
            (PORT = 1521)
          )
        )
        (CONNECT_DATA =
          (SID= myodbc3)
        )
        (HS=OK)
      )
    Maintenant fait attention a ne plus demarrer , "assistant configuration oracle net" ou "net manager" car ca te detruira ta config car il ne gere pas ces parametrages speciaux (suprime le lien du menu demarer si tu veux)

    5) tu peux faire un 'tnsping hsodbc' et voir si tout est OK

    6)Dans le repertoire 'C:\oracle\10.2.0\db\hs\admin ' cree un fichier 'initmyodbc3.ora ' , et edite le pour avoir la config suivante.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    # HS init parameters 
    # 
    HS_FDS_CONNECT_INFO = MYDATASOURCENAME
    HS_FDS_TRACE_LEVEL = off
    HS_FDS_SHAREABLE_NAME = C:\WINDOWS\system32\myodbc3.dll
    # 
    # ODBC specific environment variables 
    # 
    SET ODBCINI=c:\Window\odbc.ini 
    #
    7) En sys cree un dblink , accessible par tous via la commande



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CREATE PUBLIC DATABASE LINK Mylink CONNECT TO "Myuser" IDENTIFIED BY "MyPass" USING 'HSODBC';
    8)

    Voila , maintenant avec n importe quek user, tu peux taper

    Code :

    SELECT * FROM "MyTable"@mylink WHERE "Id" LIKE "%xx%";

    9) 2 3 trucs a savoir avec mysql :

    -Les requetes de types select a from x@Mylink where a in (select a from Y@Mylink)) ne fonctionneront pas.

    -N'utilise plus Les assistant qui touche au tnsnames.ora et listenet.ora

    -Si tu utilise des count(*) ou autre fonction du style , tu doit les entourer de la fonction to_number() , sinon les resultats sont incorrect (select to_number(count(*)) from MyTable@MyLink

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Points : 68
    Points
    68
    Par défaut
    Merci pour les tuyaux,
    Je m'attaque au montage la semaine prochaine et raconterai si tout s'est bien passé

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Oracle et procédures stockées postgres
    Bonjour,

    J'utilise aussi une base oracle, et je dois également récupérer des informations à partir d'une base postgres.

    Grâce à vos conseils, et à d'autres que j'ai recueillis sur le net, j'ai réussi à communiquer avec la base postgres, en passant par hsodbc.

    Donc, actuellement, je peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM MyTable@mylink;

    Seulement, ma base postgres utilise des procédures stockées, qui effectuent ensuite de nombreuses manipulations.
    Sous postgres, on peut appeler la procédure de différentes façons :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM MaProcedure(12345);
    SELECT MaProcedure(12345) FROM MyDummyTable;
    (MyDummyTable : table contenant un seul enregistrement).


    J'ai donc essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MaProcedure(12345) FROM MyDummyTable@mylink;
    Mais j'ai obtenu un erreur : ORA-00904: invalid column name


    J'ai cru entendre que hsODBC ne gérait pas les procédures stockées.
    Est-ce le cas?
    Sauriez-vous de quelle manière, ou par quel *contournement* je pourrais exécuter des procédures postgres à à partir d'oracle?

Discussions similaires

  1. Problème de connexion entre une base Oracle et une base ACCESS avec Oracle sql developer
    Par orasqldev dans le forum Connexions aux bases de données
    Réponses: 0
    Dernier message: 29/04/2010, 19h19
  2. Réponses: 5
    Dernier message: 05/02/2010, 08h31
  3. Probleme conversion fichier provenant d'une base oracle vers une base mysql
    Par jonnyboy dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 18/06/2009, 09h40
  4. Réponses: 7
    Dernier message: 18/02/2008, 14h33
  5. [Oracle/Config] - Nouvelle base Oracle depuis une copie
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 11
    Dernier message: 08/12/2004, 12h11

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