oracle mssql交换数据库,Database link 连接oracle MSSql 实现逻辑数据互导
項目的需要,需要將原有mssql里面的數據導入到新的oracle數據庫架構下來,因為有數據結構需要通
過邏輯導入,故mssql的導入工具不能滿足搞笑數據互導的需要。
網上找了些解決方案,透明網關什么的,配置復雜,此處留下odbc數據源配置的方式。
通過hsodbc連接:?1.
在ODBC中建立SQL Server連接的System DSN,我用名字BIO549。(步驟不詳述,請查MSDN)
2.
在Oracle主目錄下hs\admin的目錄下,拷貝inithsodbc.ora并改名為init.ora。這次,我用的SID是BIO549,所以文件名是BIO549。以我的例子,如下:
*HS_FDS_CONNECT_INFO后面是數據源名稱。
******************************
# 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 = BIO549
HS_FDS_TRACE_LEVEL = OFF
#
# Environment variables required for the non-Oracle system
#
#set
=
******************************?3.
配置listener.ora,這次加入下面一段:
******************************?(SID_DESC=
(ORACLE_HOME = C:\oracle\ora92)
(SID_NAME=BIO549)
(PROGRAM=hsodbc)
)
******************************?因此,我的listener.ora全部如下:
******************************?# LISTENER.ORA Network Configuration File:
C:\oracle\ora92\network\admin\listener.ora
# Generated by Oracle configuration tools.
NEWLISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION
=
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.180)(PORT =
1521))
)
)
)
SID_LIST_NEWLISTENER =
(SID_LIST =
(SID_DESC
=
(ORACLE_HOME = C:\oracle\ora92)
(SID_NAME = MSSQL)
(PROGRAM = tg4msql)
)
(SID_DESC=
(ORACLE_HOME = C:\oracle\ora92)
(SID_NAME=BIO549)
(PROGRAM=hsodbc)
)
)
******************************
4. 配置tnsnames.ora,如下:
******************************?BIO549?=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.180)(PORT=1521))
(CONNECT_DATA= (SID=BIO549))
(HS=OK)
)
******************************
5.
重起listener并建立連接。
(三) 注意:
我在測試的時候,起先總是有ORA-28545的錯誤,經調查含義如下:
ORA-28545 error diagnosed by Net8 when connecting to an agent
Cause: An
attempt to call an external procedure or to issue SQL to a
non-Oracle system on a Heterogeneous Services database link failed
at connection initialization. The error diagnosed by Net8 NCR
software is reported separately.
Action:
Refer to the Net8 NCRO error message. If this isn't clear, check
connection administrative setup in tnsnames.ora and listener.ora
for the service associated with the Heterogeneous Services database
link being used, or with 'extproc_connection_data' for an external
procedure call.
我仔細的查看了所有文件的配置,發現是由于listener的名字導致的錯誤(SID_LIST_NEWLISTENER),因此我建議,如果出現這個錯誤,請仔細檢查所有的配置文件。
(四)推薦閱讀:
Managing Oracle Heterogeneous Services Using Transparent
Gateways:
http://download-west.oracle.com/docs/cd/A87860_01/doc/server.817/a76960/hs_admin.htm
ORA-24289 - ORA-29249:
http://www.stanford.edu/dept/itss/docs/oracle/9i/server.920/a96525/e24280.htm
Making a Connection from Oracle to SQL Server(in English):
http://www.databasejournal.com/features/oracle/article.php/10893_3442661_1
總結
以上是生活随笔為你收集整理的oracle mssql交换数据库,Database link 连接oracle MSSql 实现逻辑数据互导的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle数据库函数手册,oracle
- 下一篇: oracle错误代码12516,ORA-