繁体   English   中英

如何使用 PLSQL Developer 将数据从 SQL Server 加载到 Oracle 表中

[英]How to load data from SQL Server into Oracle Table using PLSQL Developer

我有一个 Oracle 19c 测试数据库和某个 SQL Server 的凭据。

现在我需要创建一个 plsql 加载程序包,它选择存储在 SQL Server 中的一个表并将其加载到存储在我的 Oracle 数据库中的表中。

问题不在于包的编码,而是如何为 SQL Server 创建数据库链接。

通常,当我想在表上选择到另一个 Oracle 数据库时,我会创建数据库链接,我这样做:

create database link 'CHOOSE A NAME' 
connect to 'SCHEMA NAME' 
identified by 'PASSWORD' 
using '.....com' (DB HOST)

但是对于我的 SQL Server 凭据,我只有像TEST101\\MUC2这样的服务器名称、架构名称和密码。

使用 SQL Server Management Studio 登录有效。

但是,当我没有用于“使用”部分的 ....com 时,如何在 Oracle 端创建数据库链接?

谢谢你们。

从 Oracle 到 MSSQL 的 db 链接的语法与 oracle 到 oracle 的语法相同。 但是您必须使用 Oracle 透明网关 (OTG) 使用 OTG for MSSQL(付费)或 OTG for ODBC(免费)。 我有一篇关于它的文章, 在这里 但为了更简洁,以下是这些部分的组合方式:

为 ODBC 安装 OTG。 它真的可以去任何在它自己和两个数据库之间有网络连接的地方。 如果您只有一个连接,我发现将它与 MSSQL db 放在同一台服务器上最容易。 它将进入自己的 oracle 主页,并运行自己的侦听器。

“using”子句将引用 tnsnames.ora 条目,该条目与包含链接的 oracle 数据库位于同一服务器上。 请记住,在使用 db 链接时,oracle 数据库将充当远程 db 的客户端。 典型的 tns 条目如下所示:

NORTHWIND =
   (DESCRIPTION = 
     (ADDRESS_LIST = 
       (ADDRESS = (PROTOCOL = TCP)
       (HOST=oraotghost)(PORT=1521))
     )
     (CONNECT_DATA =
        (SID=northwind)(HS=OK)
     )
   )

tnsnames 条目将指向安装 OTG 的 HOST,以及 OTG 侦听器所在的端口。 这个监听器和数据库监听器的工作原理完全一样,没有理由不使用默认端口 1521。

OTG 侦听器将需要一个 SID_LIST 条目,如下所示(SID 和 HOME 的实际名称只是示例):

SID_DESC=
   SID_NAME=northwind
   ORACLE_HOME=D:\APP\OTG
   PROGRAM=dg4odbc

接下来是一个文件,详细说明 oracle 和 ODBC DSN 之间的连接。 在上面的例子中,该文件将被命名为“initnorthwind.ora”并且看起来像这样:

HS_FDS_CONNECT_INFO=northwind

然后,'northwind' 的最后使用会命名一个 ODBC 系统 DSN,该 DSN 进一步指向您的 MSSQL 数据库。

再次阅读链接的文章,以获取有关这些部分如何组合在一起的更多详细信息和更多说明。 在那里我只显示所有的关系。 我不了解配置 ODBC 等的机制。我假设这样做的任何人都知道如何创建这些部分,只要他们了解需要创建哪些部分以及它们如何相互关联。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM