使用 Oracle Call Interface 存取 Oracle Database
如果您使用以 Oracle Call Interface (OCI) 開發的應用程式,則可以使用 OCI 連線字串或 Essbase 伺服器上 tnsnames.ora 組態檔中定義的網路服務名稱,將 Essbase 載入規則連線至 Oracle Database。
含 Oracle Call Interface 連線字串的規則特性
若要使用 OCI 連線字串將 Essbase 載入規則連線至 Oracle Database,
-
在 Essbase Web 介面中,開啟現有規則或建立新的規則 (請參閱存取與編輯規則、建立新維度建置規則或建立新資料載入規則 )。
-
按一下來源特性。

-
按一下 SQL 特性。
-
從特性中,選取 Oracle Call Interface (OCI) 。
-
在伺服器欄位中,輸入 Oracle Database 連線字串,格式為
<host>:<port>/<service_name>。 -
在查詢欄位中,輸入從 Oracle Database 存取所需資料的 SQL 查詢。
-
在使用者名稱和密碼欄位中,提供存取 Oracle Database 綱要所需的證明資料。此資訊用於預覽資料,但不會儲存在規則中。

-
按一下預覽,確定規則可以連接和擷取資料,然後儲存和關閉規則。
使用組態檔中預先定義的 Oracle Call Interface 載入規則
若要使用 Essbase 伺服器上組態檔中定義的 net_service_name,將 Essbase 載入規則連線至 Oracle Database,
-
在 Essbase 伺服器上,在
<Oracle Home>/network/admin中建立組態檔 (例如,名稱為tnsnames.ora)。如果組態檔已經存在,請確定它具有使用 Oracle Call Interface (OCI) 連線至 Oracle Database 的有效項目。否則,請立即加以設定。在以下的範例中:
OCISQL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oraclehost.example.com)(PORT = 1521)) ) (CONNECT_DATA = (service_name = orcl.example.com) (SERVER = DEDICATED) ) )- net_service_name 為
OCISQL。請記下這個名稱,接下來您需要一個步驟。 - 主機為
oraclehost.example.com。 - 連接埠是
1521。 - 服務名稱是
orcl.example.com。
- net_service_name 為
-
在 Essbase Web 介面中,開啟現有的資料載入或維度建置規則,或建立新的規則 (請參閱存取與編輯規則、建立新維度建置規則或建立新資料載入規則 )。
-
按一下來源特性。

-
按一下 SQL 特性。
-
從特性中,選取 Oracle Call Interface (OCI) 。
-
在伺服器欄位中,輸入用於
tnsnames.ora組態檔的 net_service_name。根據步驟 1 中提供的範例,輸入OCISQL。 -
在查詢欄位中,輸入從 Oracle Database 存取所需資料的 SQL 查詢。
-
在使用者名稱和密碼欄位中,提供存取 Oracle Database 綱要所需的證明資料。此資訊用於預覽資料,但不會儲存在規則中。

-
按一下預覽,確定規則可以連接和擷取資料,然後儲存和關閉規則。
連線疑難排解
在 Windows 上,使用使用 Oracle Call Interface (OCI) 連線字串的規則預覽資料或執行維度建置或資料載入可能會失敗,並產生下列錯誤訊息:
Attempt to connect to OCI failed. [ORA-12638: Credential retrieval failed].造成此問題的原因是版本 19c Oracle Database 伺服器和 19c 從屬端 (在此情況下,從屬端是安裝 Essbase 伺服器的位置) 沒有設定,或是在 tnsnames.ora (或 sqlnet.ora) 中設定下列設定:SQLNET.AUTHENTICATION_SERVICES= (NTS)
解決方案是在 Essbase 伺服器機器上設定 SQLNET.AUTHENTICATION_SERVICES= (NONE)。
-
在
<Oracle Home>/network/admin中,尋找組態檔。 -
開啟檔案並新增
SQLNET.AUTHENTICATION_SERVICES=(NONE) -
重新啟動 Essbase 應用程式。
附註:
請參閱 SQLNET.AUTHENTICATION_SERVICES 文件中的使用注意事項,瞭解 Oracle Database 19c。