通过数据库链接将Oracle连接到SQL Server



我正在尝试从Oracle 10G(在UNIX上)连接到SQL Server数据库(在windows上)。我看过手册,我承认我发现文档很难理解。似乎有几个选项可供使用,但没有任何文档描述每个选项的工作方式。

举个例子,我得到了关于我需要连接到的数据库(即SQL Server数据库)的以下信息

  • 用户名
  • 密码
  • 数据库名称[假设数据库名称为data_extract]

为了连接以上内容,我进行了以下更改

$ORACLE_HOME/hs/admin/inithsodbc.ora

  HS_FDS_CONNECT_INFO = data_extract
  HS_FDS_TRACE_LEVEL = 0

$ORACLE_HOME/network/admin/tnsnames.ora

  sqlserver.db =
          (DESCRIPTION =
                  (ADDRESS = (protocol=tcp)(host=10.10.10.10)(port=49400))
                          (connect_data = (sid=data_extract))
                          (hs=ok)
          )

$ORACLE_HOME/network/admin/listener.ora

  LISTENER =
    (DESCRIPTION_LIST =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = merlin)(PORT = 1525))
      )
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
      )
    )
  SID_LIST_LISTENER =
    (SID_LIST =
      (SID_DESC =
        (SID_NAME = PLSExtProc)
        (ORACLE_HOME = /u/app/oracle/product/10.2.0/db)
        (PROGRAM = extproc)
      )
      (SID_DESC =
        (GLOBAL_DBNAME = db1.mydb.co.uk)
        (ORACLE_HOME = /u/app/oracle/product/10.2.0/db)
        (SID_NAME = billdb)
      )
      (SID_DESC =
          (SID_NAME = data_extract)
          (ORACLE_HOME = /u/app/oracle/product/10.2.0/db)
          (program = hsodbc)
      )
    )

注意:在listener.ora中,我只添加了最后一个SID_DESC条目。

然后我继续创建数据库链接,如下所示

  create database link sqlservdb using 'sqlserver.db';

当我试图访问一个表时,我得到以下错误

  sqlplus> select * from TESTTABLE@sqlservdb;
  select * from TESTTABLE@sqlservdb
                             *
  ERROR at line 1:
  ORA-28545: error diagnosed by Net8 when connecting to an agent
  Unable to retrieve text of NETWORK/NCR message 65535
  ORA-02063: preceding 2 lines from ORASQLSERVER

有几件事我不确定

  • 我在哪里指定从oracle数据库到sql服务器数据库访问sql服务器的用户名和密码
  • 在互联网上阅读后,我可以看到一些人引用DSN数据源。有人告诉我,我所掌握的信息就是我所需要的全部。这是正确的吗?还是我需要其他东西
  • inithsodbc.ora和tnsnames.ora中指定的sid i实际上是sql server数据库。这是正确的吗

如有上述帮助,我们将不胜感激。感谢

我使用了必须在Oracle UNIX机器上配置的Data Direct驱动程序。您必须在UNIX中创建ODBC连接,才能查看SQL Server。(至少我一直都是这样做的)

为了创建到SQL Server的数据库链接,您必须将连接名称和密码用双引号括起来,如下所示:

create database link mysqlink 
connect to "myuser" identified by "mypassword" using 'servername';

相关内容

  • 没有找到相关文章

最新更新