日期:2014-05-17  浏览次数:20985 次

oracle11g查询mysql数据库
环境:
windows 2003 sp2、oracle11g(32位)、mysql-5.1.41-winx64.msi(64位)
oracle和mysql都是同一台服务器

需求:建立oracle连接进行查询mysql数据库里面的数据.
参考资料:http://blog.csdn.net/raise4u/archive/2010/04/13/5480497.aspx

方便的话请加我的QQ,方便直接发送错误提示图片,我的QQ:100992995

请高手指点.

目前配置:
1、在服务器上建立了mysql 的 ODBC 数据源, 用户DSN和系统DSN都建立了名字为mysqltest的数据源。

2、进入D:\Server\oracle\product\11.1.0\db_1\tg4msql,建立了initnetlearn.ora文件,文件内容如下:

# This is a sample agent init file that contains the HS parameters that are
# needed for the Transparent Gateway for SQL Server
#
# HS init parameters
#
#关键点哦!
HS_FDS_CONNECT_INFO="SERVER=192.168.1.202;DATABASE=netlearn"
#ORACLE文档中无这个关键点哦,不用应该也可以的!
HS_DB_NAME=netlearn 
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER

3、修改
D:\Server\oracle\product\11.1.0\db_1\NETWORK\ADMIN下的###listener.ora文件:
后面添加了:
SID_LIST_LISTENER =
  (SID_LIST =
  (SID_DESC =
  (SERVICE_NAME = PLSExtProc)
  (ORACLE_HOME = D:\Server\oracle\product\11.1.0\db_1)
  (PROGRAM = extproc)
  )
  (SID_DESC =
  (SERVICE_NAME = mysqltest)
  (ORACLE_HOME = D:\Server\oracle\product\11.1.0\db_1)
  (PROGRAM = tg4msql)
  )
  )

4、重新启动了OracleOraDb11g_home1TNSListener服务
5、用SYS登录了ORACLE创建了DBLINK:
CREATE PUBLIC DATABASE LINK ms_sql
 CONNECT TO "root"
 IDENTIFIED BY "123456"
 USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.202)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = mysqltest)
)
(HS = netlearn)
)';

6、执行查询:select * from tab_user@ms_sql

结果:
ORA-28545:连接代理时net8诊断到错误Unable to retrieve text of NETWORK/NCP message 65535ORA-02063:紧接着 2lines(起自ms_sql)

请问是哪里出现了问题?我最终想要的结果是,连接oracle就可以查询出mysql数据库里面的数据。本人用的oracle是oracle11g,请高人指点。

------解决方案--------------------
我帮你解决了!
------解决方案--------------------
我加你QQ,QQ远程搞