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
-je fais un lsnctl restart
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 tnsping hsodbc sous windows (ou se trouve la bd oracle)
- je cree sous oracle mon db link:
- puis je teste une requete :
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';
- et enfin l'erreur produite:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select * from voyageur@testdb;
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.
Partager