利用异构服务代理(Heterogeneous Services ODBC Agent)实现ODBC配置:
1、设置系统DSN;
2、建立ODBC数据源,若MySQL需要事先安装MyODBC;
3、定义新的数据源,本例为MSSQL的数据源,名称为MSODBC;
4、数据源用户验证;
5、选择相应数据库;
6、数据源相关设置,一般不用更改;
7、连接测试; 配置文件:initMSODBC.orainit<SID_Name>.ora
文件路径:D:\oracle\ora92\hs\admin<oracle_home_directory>\hs\admin
文件内容:
# 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 = MSODBC<ODBC Data Source Name>
HS_FDS_TRACE_LEVEL = OFF跟踪开关<ON/OFF>
跟踪文件路径:<oracle_home_directory>\hs\trace
#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>配置文件:listener.ora
文件路径:D:\oracle\ora92\network\admin<oracle_home_directory>\network\admin
文件内容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\ora92)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = Fire)
(ORACLE_HOME = D:\oracle\ora92)
(SID_NAME = Fire)
)
(SID_DESC=
(SID_NAME = MSODBC)<SID_Name>,应与tnsnames.ora文件中的<SID_Name>相对应
(ORACLE_HOME = D:\oracle\ora92)<oracle_home_directory>
(PROGRAM = HSODBC)<异构服务代理程序>
)
)配置文件:tnsnames.ora
文件路径:D:\oracle\ora92\network\admin<oracle_home_directory>\network\admin
文件内容:
MSODBC = <SID_Name>,应与listener.ora文件中的<SID_Name>相对应
(DESCRIPTION =
(ADDRESS =
(PROTOCOL=TCP)
(HOST = RING_ASUS)<ODBC Server Name or IP Address>
(PORT = 1521)监听端口,默认为1521
)
(CONNECT_DATA =
(SID = MSODBC)<SID_Name>
)
(HS = OK)
)测试:
1、重新启动Oracle监听服务,OracleOraHome92TNSListener;
2、启动SQL Plus编辑器;
3、用户验证;
4、创建数据库链接,命令如下:
SQL> create public database link msodbc connect to sa identified by baosight using 'msodbc';
msodbc:数据库链接名
sa:MSSQL数据库的用户名
baosight:MSSQL数据库的用户密码
'msodbc':SID_Name5、执行SQL语句:(除DDL,数据定义语言)
SQL> select * from products@msodbc;
products:表名
@msodbc:数据库链接名6、丢弃数据库链接:
SQL> drop public database link msodbc;
msodbc:数据库链接名注意:
如果需要多个链接,请多重复上述操作!!!
在执行Insert、Update、Delete及View操作时,使用commit!!!另外:
还可以利用透明网关(Transparent Gateway For MSSQL)
1、设置系统DSN;
2、建立ODBC数据源,若MySQL需要事先安装MyODBC;
3、定义新的数据源,本例为MSSQL的数据源,名称为MSODBC;
4、数据源用户验证;
5、选择相应数据库;
6、数据源相关设置,一般不用更改;
7、连接测试; 配置文件:initMSODBC.orainit<SID_Name>.ora
文件路径:D:\oracle\ora92\hs\admin<oracle_home_directory>\hs\admin
文件内容:
# 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 = MSODBC<ODBC Data Source Name>
HS_FDS_TRACE_LEVEL = OFF跟踪开关<ON/OFF>
跟踪文件路径:<oracle_home_directory>\hs\trace
#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>配置文件:listener.ora
文件路径:D:\oracle\ora92\network\admin<oracle_home_directory>\network\admin
文件内容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\ora92)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = Fire)
(ORACLE_HOME = D:\oracle\ora92)
(SID_NAME = Fire)
)
(SID_DESC=
(SID_NAME = MSODBC)<SID_Name>,应与tnsnames.ora文件中的<SID_Name>相对应
(ORACLE_HOME = D:\oracle\ora92)<oracle_home_directory>
(PROGRAM = HSODBC)<异构服务代理程序>
)
)配置文件:tnsnames.ora
文件路径:D:\oracle\ora92\network\admin<oracle_home_directory>\network\admin
文件内容:
MSODBC = <SID_Name>,应与listener.ora文件中的<SID_Name>相对应
(DESCRIPTION =
(ADDRESS =
(PROTOCOL=TCP)
(HOST = RING_ASUS)<ODBC Server Name or IP Address>
(PORT = 1521)监听端口,默认为1521
)
(CONNECT_DATA =
(SID = MSODBC)<SID_Name>
)
(HS = OK)
)测试:
1、重新启动Oracle监听服务,OracleOraHome92TNSListener;
2、启动SQL Plus编辑器;
3、用户验证;
4、创建数据库链接,命令如下:
SQL> create public database link msodbc connect to sa identified by baosight using 'msodbc';
msodbc:数据库链接名
sa:MSSQL数据库的用户名
baosight:MSSQL数据库的用户密码
'msodbc':SID_Name5、执行SQL语句:(除DDL,数据定义语言)
SQL> select * from products@msodbc;
products:表名
@msodbc:数据库链接名6、丢弃数据库链接:
SQL> drop public database link msodbc;
msodbc:数据库链接名注意:
如果需要多个链接,请多重复上述操作!!!
在执行Insert、Update、Delete及View操作时,使用commit!!!另外:
还可以利用透明网关(Transparent Gateway For MSSQL)
文件路径:D:\oracle\ora92\tg4msql\admin<oracle_home_directory>\tg4msql\admin
文件内容:
# 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.0.247;DATABASE=pubs"SERVER=<MSSQL Server Name or IP Address>;DATABASE=<Database Name>
另一种写法:<MSSQL Server Name>.<Database Name>
HS_FDS_TRACE_LEVEL=OFF跟踪开关<ON/OFF>
跟踪文件路径:<oracle_home_directory>\tg4msql\trace
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER配置文件:listener.ora
文件路径:D:\oracle\ora92\network\admin<oracle_home_directory>\network\admin
文件内容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\ora92)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = Fire)
(ORACLE_HOME = D:\oracle\ora92)
(SID_NAME = Fire)
)
(SID_DESC=
(SID_NAME = MSSQL)<SID_Name>,应与tnsnames.ora文件中的<SID_Name>相对应
(ORACLE_HOME = D:\oracle\ora92)<oracle_home_directory>
(PROGRAM = tg4msql)<透明网关程序>
)
)配置文件:tnsnames.ora
文件路径:D:\oracle\ora92\network\admin<oracle_home_directory>\network\admin
文件内容:
MSSQL = <SID_Name>,应与listener.ora文件中的<SID_Name>相对应
(DESCRIPTION =
(ADDRESS =
(PROTOCOL=TCP)
(HOST = RING_ASUS)<TG Server Name or IP Address>
(PORT = 1521)监听端口,默认为1521
)
(CONNECT_DATA =
(SID = MSSQL)<SID_Name>
)
(HS = OK)
)测试同上。