共用方式為


使用 BizTalk Server 在 Oracle 資料庫中使用 BFILE 資料類型的資料表上執行作業

Oracle 資料庫配接器支援資料表和預存程式中的 BFILE 資料類型。 本節提供如何對具有 BFILE 資料類型資料行之資料表執行作業的資訊。 如需 Oracle 資料庫配接器如何支援 BFILE 的詳細資訊,請參閱 Oracle 資料庫中具有 BFILE 資料類型之資料表的作業

設定 Oracle 資料庫伺服器以進行 BFILE 上的作業

本節示範如何叫用將記錄插入 SCOTT 的程式。CUSTOMERDOC 資料表。 此資料表包含 BFILE 資料類型的資料行,並藉由執行 BizTalk 配接器套件範例隨附的 SQL 腳本來建立。 若要深入瞭解範例和 SQL 腳本,請參閱 Oracle 資料庫配接器的範例

執行腳本以建立 CUSTOMERDOC 資料表之後,您必須在執行 Oracle 資料庫的電腦上執行特定動作,才能啟用 BFILE 資料類型的作業。 您必須在 Oracle 資料庫上執行的工作如下:

  1. 在執行 Oracle 資料庫的電腦上建立目錄 C:\MYDIR。

  2. 在 Oracle 資料庫中建立邏輯目錄。 這通常需要具有 SYSDBA 許可權的使用者。 例如:

    CREATE OR REPLACE DIRECTORY MYDIR AS 'C:\MYDIR';  
    
  3. 將許可權新增至使用者,以存取 Oracle 中的邏輯目錄。 例如:

    GRANT READ, WRITE ON DIRECTORY MYDIR to SCOTT;  
    
  4. 將要存取的檔案複製到執行 Oracle 資料庫之實體目錄位置的電腦上,與 Oracle 中的邏輯目錄相關聯。 您在步驟 1 中建立了這個目錄。

    根據上述範例,將檔案 customer_profile.txt 複製到目錄 C:\MYDIR。 此檔案現在可供 BFILE 作業使用。 如需執行作業的詳細資訊,請參閱在 Oracle 資料庫中使用 BizTalk Server 對具有大型物件類型資料的資料表執行作業

    重要

    具有 BFILE 資料類型的資料表支援 ReadLOB 作業。 不支援 UpdateLOB 作業。 不過,使用者可以替代地使用 UPDATE 作業。

如何使用 BFILE 資料類型執行作業

使用 Oracle 資料庫配接器搭配 BizTalk Server在 Oracle 資料庫上執行作業牽涉到建置組塊中所述的程式工作,以使用 Oracle Database 開發 BizTalk 應用程式。 叫用將記錄插入 SCOTT 的程式。CUSTOMERDOC 資料表,這些工作如下:

  1. 建立 BizTalk 專案,並產生CREATE_CUSTOMERDOC預存程式的架構。

  2. 在 BizTalk 專案中建立訊息,以便從 Oracle 資料庫傳送和接收訊息。

  3. 建立協調流程以叫用 Oracle 資料庫資料表或檢視上的作業。

  4. 建置和部署 BizTalk 專案。

  5. 藉由建立實體傳送和接收埠來設定 BizTalk 應用程式。

  6. 啟動 BizTalk 應用程式。

    本主題提供執行這些工作的指示。

以本主題為基礎的範例

根據本主題的範例Operate_BFILE也隨附 BizTalk 配接器套件。 如需詳細資訊,請參閱 Oracle 資料庫配接器的範例

產生架構

在本主題中,為了示範如何使用 BFILE 資料行對資料表執行作業,我們將叫用CREATE_CUSTOMERDOC程式。 此程式是在 SCOTT\Package\ACCOUNT_PKG 架構下建立,方法是執行範例所提供的 SQL 腳本。 此程式會採用 BFILE 記錄類型,並在 CUSTOMERDOC 資料表中新增記錄。 如需 SQL 腳本的詳細資訊,請參閱 架構範例

如需如何產生架構的詳細資訊,請參閱 在 Visual Studio 中擷取 Oracle 作業的中繼資料

定義訊息和訊息類型

您稍早產生的架構描述協調流程中訊息所需的「類型」。 訊息通常是變數,其類型是由對應的架構所定義。 您必須將您在第一個步驟中產生的架構連結到 BizTalk 專案的 [協調流程檢視] 視窗的訊息。

針對本主題,您必須建立兩個訊息,一個是傳送要求給 Oracle 資料庫,另一個是接收回應。

執行下列步驟來建立訊息,並將其連結至架構。

  1. 如果 BizTalk 專案尚未開啟,請開啟 [協調流程檢視] 視窗。 若要這樣做,請按一下 [ 檢視],指向 [其他 Windows],然後按一下 [ 協調流程檢視]。

  2. 在 [協調流程檢視] 中,以滑鼠右鍵按一下 [ 訊息],然後按一下 [ 新增訊息]。

  3. 以滑鼠右鍵按一下新建立的訊息,然後選取 [ 屬性視窗]。

  4. Message_1的 [屬性]窗格中,執行下列動作:

    使用 作法
    識別碼 輸入 要求
    訊息類型 從下拉式清單中展開 [ 架構],然後選取 [BFILE_Operations.OracleDBBindingSchema.CREATE_CUSTOMERDOC],其中 BFILE_Operations 是您 BizTalk 專案的名稱。 OracleDBBindingSchema 是針對CREATE_CUSTOMERDOC程式產生的架構。
  5. 重複步驟 2 以建立新的訊息。 在新訊息的 [ 屬性] 窗格中,執行下列動作:

    使用 作法
    識別碼 輸入 回應
    訊息類型 從下拉式清單中展開 [ 架構],然後選取 [BFILE_Operations.OracleDBBindingSchema.CREATE_CUSTOMERDOCResponse]。

設定協調流程

您必須建立 BizTalk 協調流程,才能使用BizTalk Server來執行程式。 在此協調流程中,您會在定義的接收位置卸載要求訊息。 Oracle 資料庫配接器會取用此訊息,並透過 ODP 將它傳遞至 Oracle 資料庫。 Oracle 資料庫的回應會儲存到另一個位置。 在 Oracle 資料庫資料表中的 BFILE 資料行上執行作業的一般協調流程會包含:

  • 傳送和接收圖形,以將訊息傳送至 Oracle 資料庫並接收回應。

  • 單向接收埠,可接收傳送至 Oracle 資料庫的要求訊息。

  • 雙向傳送埠,將要求訊息傳送至 Oracle 資料庫並接收回應。

  • 單向傳送埠,以將來自 Oracle 資料庫的回應傳送至資料夾。

    範例協調流程如下所示:

    使用 BFILE執行作業的協調流程

新增訊息圖形

請確定您為每個訊息圖形指定下列屬性。 Shape 資料行中列出的名稱是訊息圖形的名稱,如剛才提及的協調流程所示。

圖形 圖形類型 屬性
ReceiveMessage 接收 - 將 [名稱 ] 設定為 ReceiveMessage
- 將 Activate 設定為 True
SendMessage 傳送 - 將 [名稱 ] 設定為 SendMessage
ReceiveResponse 接收 - 將 Name 設定為 ReceiveResponse
- 將 Activate 設定為 False
SendResponse 傳送 - 將 [名稱] 設定為 SendResponse

新增埠

請確定您為每個邏輯埠指定下列屬性。 [埠] 資料行中所列的名稱是協調流程中顯示的埠名稱。

連接埠 屬性
FileIn - 將 識別碼 設定為 FileIn
- 將 Type 設定為 FileInType
- 將 通訊模式 設定為 單向
- 將 通訊方向 設定為 接收
LOBPort - 將 識別碼 設定為 LOBPort
- 將 Type 設定為 LOBPortType
- 將 通訊模式 設定為 Request-Response
- 將 通訊方向 設定為 Send-Receive
SaveResponse - 將 識別碼 設定為 SaveResponse
- 將 類型 設定為 SaveResponseType
- 將 通訊模式 設定為 單向
- 設定要傳送的通訊方向

指定動作圖形的訊息,並將其連接到埠

下表指定屬性及其值,您應該設定為指定動作圖形的訊息,以及將訊息連結至埠。 Shape 資料行中所列的名稱是如先前所述協調流程中顯示的訊息圖形名稱。

圖形 屬性
ReceiveMessage - 將 訊息 設定為 要求
- 將 作業 設定為 FileIn.Create_BFILE。請求
SendMessage - 將 訊息 設定為 要求
- 將 作業 設定為 LOBPort.Create_BFILE。請求
ReceiveResponse - 將 訊息 設定為 回應
- 將 作業 設定為 LOBPort.Create_BFILE。回應
SendResponse - 將 訊息 設定為 回應
- 將作業設定為 SaveResponse.Create_BFILE。請求

指定這些屬性之後,訊息圖形和埠會連線,而且您的協調流程已完成。

您現在必須建置 BizTalk 解決方案,並將其部署至BizTalk Server。 如需詳細資訊,請參閱 建置和執行協調流程

設定 BizTalk 應用程式

部署 BizTalk 專案之後,您稍早建立的協調流程會列在 BizTalk Server 管理主控台的 [協調流程] 窗格底下。 您必須使用 BizTalk Server 管理主控台來設定應用程式。 如需逐步解說,請參閱 逐步解說:部署基本 BizTalk 應用程式

設定應用程式牽涉到:

  • 選取應用程式的主機。

  • 將您在協調流程中建立的埠對應至 BizTalk Server 管理主控台中的實體埠。 針對此協調流程,您必須:

    • 定義硬碟上的位置,以及您將卸載要求訊息的對應檔案埠。 BizTalk 協調流程會取用要求訊息,並將其傳送至 Oracle 資料庫。

    • 定義硬碟上的位置和對應的檔案埠,BizTalk 協調流程將會卸載包含 Oracle 資料庫回應的回應訊息。

    • 定義實體 WCF-Custom 或 WCF-OracleDB 傳送埠,以將訊息傳送至 Oracle 資料庫。 您也必須在傳送埠中指定動作。 如需如何建立 WCF-Custom 或 WCF-OracleDB 埠的資訊,請參閱 手動設定實體埠系結至 Oracle 資料庫配接器

      注意

      使用取用配接器服務 BizTalk 專案增益集產生架構也會建立系結檔案,其中包含要針對這些埠設定的埠和動作的相關資訊。 您可以從 BizTalk Server 管理主控台匯入此系結檔案,以建立輸出通話的傳送埠 () ,或針對輸入呼叫) 接收埠 (。 如需詳細資訊,請參閱 使用埠系結檔案設定實體埠系結至 Oracle Database

啟動應用程式

您必須啟動 BizTalk 應用程式,以叫用在 CUSTOMERDOC 資料表中建立記錄的程式。 如需啟動 BizTalk 應用程式的指示,請參閱 如何啟動協調流程

在這個階段,請確定:

  • 要接收協調流程要求訊息的 FILE 接收埠正在執行。

  • 從協調流程接收回應訊息的 FILE 傳送埠正在執行。

  • WCF-Custom 或 WCF-OracleDB 傳送埠,以將訊息傳送至 Oracle 資料庫正在執行。

  • 作業的 BizTalk 協調流程正在執行。

執行作業

執行應用程式之後,您必須將要求訊息卸載至 FILE 接收位置。 要求訊息的架構必須符合您稍早產生的程式的架構。 如需使用 Oracle 資料庫配接器叫用程式之要求訊息架構的詳細資訊,請參閱函式 和程式的訊息 架構。

例如,叫用CREATE_CUSTOMERDOC程式的要求訊息為:

<CREATE_CUSTOMERDOC xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">  
  <CNAME>John Smith</CNAME>  
  <CDOC>MYDIR/John_Smith_profile.txt</CDOC>  
</CREATE_CUSTOMERDOC>  

注意

文字檔 John_Smith_profile.txt 必須存在於與 Oracle 中邏輯目錄相關聯的實體目錄位置。 在此範例中,文字檔必須存在於 C:\MYDIR 中

協調流程會取用訊息,並將其傳送至 Oracle 資料庫。 Oracle 資料庫的回應會儲存在定義為協調流程一部分的其他 FILE 位置。 例如,上述要求訊息的 Oracle 資料庫的回應為:

<?xml version="1.0" encoding="utf-8"?>  
<CREATE_CUSTOMERDOCResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG"></CREATE_CUSTOMERDOCResponse>  

注意

您可以建立類似的協調流程,從具有 BFILE 類型欄位的資料表讀取資料。 BizTalk 配接器套件隨附的 SQL 腳本會建立包含GET_CUSTOMERDOC程式的ACCOUNT_PKG。 您可以使用此程式從 SCOTT 擷取 BFILE 資料。CUSTOMERDOC 資料表。

BizTalk 配接器套件範例也包含範例Operate_BFILE。 此範例示範如何將記錄插入 SCOTT。使用CREATE_CUSTOMERDOC預存程式 (的 CUSTOMERDOC 資料表,如本主題中所述。) 此範例也會示範如何從 SCOTT 讀取 BFILE 資料。使用預存程式GET_CUSTOMERDOC CUSTOMERDOC 資料表。

可能的例外狀況

如需使用 BizTalk Server 執行 DML 作業時可能會遇到的例外狀況相關資訊,請參閱例外狀況和錯誤處理

最佳做法

部署並設定 BizTalk 專案之後,您可以將組態設定匯出至稱為系結檔案的 XML 檔案。 產生系結檔案之後,您可以從檔案匯入組態設定,如此就不需要為相同的協調流程建立傳送埠、接收埠等。 如需系結檔案的詳細資訊,請參閱 重複使用 Oracle 資料庫配接器系結

另請參閱

使用 Oracle 資料庫開發 BizTalk 應用程式的建置組塊