簡體   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