# Oracle

本節解說如何在資料任務中設定 Oracle 來源。在您開始資料任務之前，請確定已滿足[必要條件](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Oracle/oracle-prerequisites-server.htm)、設定[必要權限](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/Oracle/OracleDBSource_Security.htm)，並且熟悉[限制和考慮事項](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/Oracle/OracleDB_source_limitations.htm)。

資訊備註此連接器不受 Qlik Talend Cloud 啟動器 訂閱支援。

從下列任何資料庫登陸資料時，您需要設定與 Oracle 的連線：

* 內部部署的 Oracle

* Amazon RDS for Oracle

* Oracle Cloud

## 設定連線屬性

本節說明可用的連線屬性。除非另有指明，否則所有屬性皆為必要。

若要開啟連接器，進行下列事項：

1. 在連線中，按一下建立連線。

2. 選取 Oracle 來源連接器，然後提供下列設定：

### 資料來源

* 資料閘道

  選取 資料移動閘道 以用於移動您的資料。

  如需關於 資料移動閘道 的詳細資訊，請參閱 [Qlik Data Gateway - Data Movement](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm)。

* 雲端供應商：如您的 Oracle 資料庫位於雲端，請選取供應商：

  * 無 (預設值)

  * Amazon RDS

  * Oracle Cloud

* 連線字串：與來源資料庫的 Oracle 連線字串。您可採取任何一種 Oracle 格式輸入連線字串，例如：

  `//host:port/service name`

  其中：

  * `host`: 這是您正在使用有 Oracle 資料的電腦之名稱或 IP 位址。舉例來說， `johnboy_W7` 或 `255.255.255.0`.
  * `port`：（非必要）這是您正在使用有 Oracle 資料的電腦之 TNS Listener Port 號碼。如果您沒有輸入連接埠號碼，將使用預設 Oracle TNS Listener 連接埠。
  * `service name`：（非必要）這是您正在使用有 Oracle 資料的電腦之服務名稱。如果您沒有輸入服務名稱，將使用預設服務名稱。

  您也可以輸入 Oracle Net keyword-value 配對。例如︰

  `"(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=dlsun242) (PORT=5521))` `(CONNECT_DATA=(SERVICE_NAME=bjava21)))"`

  資訊備註

  使用多組織用戶共享[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Oracle/Oracle-source.htm) 環境任務時，連線字串應指定特定的 PDB。

### 帳戶屬性

使用者名稱和密碼：獲得授權可存取 Oracle 資料庫的使用者的使用者名稱和密碼。

### 資料庫屬性

* Expose NUMBER 為：選取下列中的一項：

  * 整數位數/小數位數組合

  * 浮動

  * VARCHAR

  資訊備註

  * 如果整數位數為 39 或以上，選擇 VARCHAR
  * 預設況下，NUMBER 資料類型轉換為整數位數 38，小數位數 10
  * Oracle 資料庫中的「Expose NUMBER」定義僅用於 NUMBER 資料類型（沒有說明整數位數和小數位數定義）

* 支援巢狀表格：如果您需要 land Oracle 表格（包含為巢狀表格或定義類型的欄位），選擇此選項。如需更多資訊此功能的資訊和先決條件，請參閱[移動 巢狀表格](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/Oracle/nested_tables.htm)。

* 支援隱藏欄位：選擇此選項以land隱藏欄位。

### CDC 屬性

* 重試間隔：使用計時器或輸入系統在重新發送查詢時等候的秒數。

* 封存重做記錄目的地 ID：封存重做記錄的目的地。值應該與 `V$archived_log`表格的`DEST_ID`數字相同。

  有多個記錄目的地的情況下任務 (`DEST_ID`)，您必須指定能由 Qlik 複寫伺服器存取，代表封存記錄的封存重做記錄位置指示器。如未指定封存重做記錄位置指示器，Qlik 複寫伺服器將使用替代封存重做記錄目的地 ID 欄位指定的 ID。如果未指定替代 ID，則 Qlik 複寫伺服器將使用最小既有 `DEST_ID`。

* 替代封存重做記錄目的地 ID：失敗事件封存目的地讀取自主要目的地。

* 僅使用封存重做記錄：若選取此選項，Qlik 複寫伺服器只會存取封存重做記錄。如果封存重作記錄僅儲存於 ASM，需要向連接器設定中指定的使用者授予 [必要 ASM 權限](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/Oracle/OracleDBSource_Security.htm#ar_oracleds_385117211_beijchii) 中說明的 ASM 特權。

* 透過以下內容存取重做記錄：選擇是否要使用Log Reader（預設）或 LogMiner 存取重作記錄。當雲端供應商為 Oracle Cloud，重作記錄永遠會使用 Log Reader 進行存取。當沒有選擇時，將使用 LogMiner 存取重作記錄。關於應該使用 LogMiner 而不是 Log Reader 的指引，請參閱 [重做記錄檔 - 存取方法準則](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/Oracle/Redo_Log_Files_Access_Method_Guidelines.htm)。

### ASM 屬性

* 如果 Oracle 使用 Automated Storage Management (ASM) 重作您儲存使用的記錄，在指定欄位輸入必要存取資料。

  資訊備註

  * 只有在選擇透過 Log Reader 存取重作記錄時才可使用這些選項。

  * 要存取 ASM 的重作記錄，您必須如[必要 ASM 權限](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/Oracle/OracleDBSource_Security.htm#ar_oracleds_385117211_beijchii)說明授予其他特權

* * ASM 連線字串：如果您的 Oracle 資料庫使用 ASM 時的連線字串至 ASM 的範例。

  * ASM 使用者名稱：ASM 使用者的使用者名稱。

  * ASM 密碼：ASM 使用者的密碼。

  * 同時 ASM Read 執行緒數量：從 ASM 讀取重作記錄使用的執行緒數量。當有大量變更時，增加此數量可能改善效能。

### CDC 的密碼儲存庫加密項目

當部分來源表格欄位加密時，您必須指定 Oracle Wallet 加密名稱和值。如需更多資訊資訊，請參閱下方的尋找 Wallet 輸入。

### 內部屬性

內部屬性用於特殊使用情況，因此不會在對話方塊中顯示。您只能在 Qlik 支援指示下使用。

根據需要使用欄位右側的 the 新建 icon 和 the 取消 icon 按鈕以新增或移除屬性。

### 名稱

來源連線的顯示名稱。

## 尋找錢包項目

### 尋找用於 TDE 欄加密的錢包項目

為了指定用於 TDE 資料表空間加密或 TDE 欄位加密的正確加密金鑰，您首先必須找到包含加密金鑰 Oracle Wallent 的相關輸入（或遇到多個金鑰時的輸入）。在您找到相關輸入後，分別複製輸入和其數值（或如果超過一個的輸入和數值）於名稱和數值欄位。

資訊備註

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Oracle/Oracle-source.htm)要輸入多個數值，首先將每個輸入複製入文字編輯器，如 Notepad 以確保使用逗號分隔數值。接著，從文字編輯器複製包含數值和逗號的字串，再貼上至 **值** 欄位。針對輸入不輸要這麼做。您可以直接在輸入欄位貼上輸入，記得使用逗號分隔每個輸入。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Oracle/Oracle-source.htm)要找到 Oracle Wallet 輸入：

1. 如果 ENCRYPTION\_WALLET\_LOCATION 參數在 sqlnet.ora 檔案中被定義，使用由此參數定義目錄中的錢包。

2. 如果 WALLET\_LOCATION 參數在 sqlnet.ora 檔案中被定義，使用此參數目錄中定義的錢包。

3. 在其他情況下，使用預設資料庫位置的錢包。

   資訊備註

   錢包名稱應為 ewallet.p12

4. 使用 Oracle mksore 公用程式中的「清單」選項，決定 ORACLE.SECURITY.DB/TS.ENCRYPTION.&lt;SUFFIX&gt; 輸入名稱，如下所示：

   `mkstore –wrl <full wallet name> -list`

5. [](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Oracle/Oracle-source.htm)如果您知道哪個輸入用於加密重作記錄，選擇該輸入名稱並使用 Oracle mkstore 公用程式中的「viewEntry」選項決定輸入值，如下所示：

   ` mkstore –wrl <full wallet name> -viewEntry <entry name>
                            `

   資訊備註

   如果您不知道哪個輸入用於加密重作記錄，您可以選擇多個 DB 或 TS 輸入並如上述決定其數值 (再複製貼上輸入名稱和數值於名稱和數值欄位)。如果指定輸入不正確，任務會失敗，錯誤訊息會包含正確的輸入名稱。

   資訊備註

   如果 DBA 在任務進行時變更輸入，任務會失敗，錯誤訊息會包含正確的輸入名稱。新增新輸入（名稱和數值）於已指定輸入並重啟任務。

### 尋找特定表格中，用於 TDE 欄加密的錢包項目

此區段說明如何找到在指定表格用於 TDE 欄加密的正確加密金鑰。

要找到 Oracle Wallet 輸入：

1. 在 Oracle 資料庫，依據給予的擁有人和表格名稱，進行以下查詢以返回`object_id`（如：表格 ID）：

   `Select object_id from all_objects where owner='<table owner>' and object_name='<table name>' and object_type='TABLE';`

2. 在以下查詢使用已擷取的`object_id`以返回相關主要金鑰：

   `select mkeyid from sys.enc$ where obj#=OBJECT_ID;`

3. 如下所示，從 Oracle Wallet 選擇主要數值：

   `mkstore –wrl <full_wallet_name> -viewEntry <entry_name>`

4. 分別在名稱和數值欄位複製主要金鑰輸入和其數值。