Bonjour,

cela fait 3 jours que je me bats pour réaliser une lecture à partir d'un serveur OracleXE en utilisant un dblink vers mysql sans aboutir.

C'est pourquoi, j'ai bseoin de votre aide.

Topologie:
- OralceXE sous winows xp pro ( host: chemical-oracle)
- Mysql sous MacOSX (host MacSeb)
les ports par default sont utilisés.

Tout d abord sous win:

- j'ai installe le pilote odbc de mysql.
Les parametres ont l air d'être correctes:


- j'ai édité le fichier tnsname.ora (la partie en incliné concerne le code que j'ai ajouté)

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = chemical-oracle)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

ORACLR_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
    ) 
    (CONNECT_DATA = 
      (SID = CLRExtProc) 
      (PRESENTATION = RO) 
    ) 
  ) 



HSODBC =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS =
        (PROTOCOL = TCP)
        (HOST = chemical-oracle)
        (PORT = 1521)
      )
    )
    (CONNECT_DATA =
      (SID= MysqlAB)
    )
    (HS=OK)
  )

- j'ai édité le fichier listener.ora (la partie en incliné concerne le code que j'ai ajouté)


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
17
18
19
20
21
22
23
24
25
26
27
28
29
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = MysqlAB)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server)
      (PROGRAM = hsodbc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = chemical-oracle)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

- j'ai crée le fichier initMysqlAB.ora dans C:\oraclexe\app\oracle\product\10.2.0\server\hs\admin

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
 
# This is a sample agent init file that contains the HS parameters that are
# needed for an ODBC Agent. 
 
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = <MysqlAB>
HS_FDS_TRACE_LEVEL = off
 
 
#
# Environment variables required for the non-Oracle system
#
#set ODBCINI= c:\WINDOWNS\odbc.ini
-je fais un lsnctl restart


- je fais un tnsping hsodbc sous windows (ou se trouve la bd oracle)




- je cree sous oracle mon db link:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
CREATE DATABASE LINK testdb CONNECT TO "adminAB" 
IDENTIFIED BY "passAB" USING 'HSODBC';
- puis je teste une requete :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
select * from voyageur@testdb;
- et enfin l'erreur produite:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
Error starting at line 1 in command:
select * from voyageur@testdb
Error at Command Line:1 Column:23
Error report:
SQL Error: ORA-28500: la connexion d'ORACLE à un système non Oracle a renvoyé ce message :
[Generic Connectivity Using ODBC][X019] XML parsing error: [X019] XML parsing error: no element found
ORA-02063: précédant 2 lines de TESTDB
28500. 00000 -  "connection from ORACLE to a non-Oracle system returned this message:"
*Cause:    The cause is explained in the forwarded message.
*Action:   See the non-Oracle system's documentation of the forwarded
           message.

Je vous remercie d'avance d'avoir pris le temps de me lire et de m'aider si cela vous est possible.