【问题标题】:How to query in SQL Server with databasename.owner.tablename using oracle dg4odbc如何使用 oracle dg4odbc 在 SQL Server 中使用 databasename.owner.tablename 进行查询
【发布时间】:2016-06-27 17:01:23
【问题描述】:
我有一个从 Oracle 11g 到 SQL Server 2005 的有效 dg4odbc 连接。Oracle 使用 unixODBC 和 FreeTDS 连接到 SQL Server。我可以做简单的查询,例如:
select count(*)
from tablename@sqlserver_dblink
但我想做的是
select count(*)
from databasename.owner.tablename@sqlserver_dblink
到同一 SQL Server 中的另一个数据库。
请帮忙。
【问题讨论】:
标签:
sql-server
oracle
oracle11g
dblink
【解决方案1】:
数据库名称和所有者(SQL SErver 中的概念不同)是 ODBC 连接 DSN 的一部分。它们没有在您的 SQL 中指定。数据库链接 (@sqlserve_dblink) 是您的 oracle 数据库中的一个对象。 db 链接定义有一个名为 HOST 的属性,它在数据库的 tnsnames.ora 文件中指定了一个条目。这反过来又会解析为您的 oracle 网关具有侦听器的目的地。从那里它被解析为一个网关配置文件,该文件又指定了 ODBC 驱动程序和 DSN。 DSN 用于指定实际的 SQL Server 数据库和凭据。