使用 Oracle Call Interface 访问 Oracle Database
如果使用使用 Oracle Call Interface (OCI) 开发的应用程序,则可以使用 OCI 连接字符串或 Essbase Server 上的 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 查询。
-
在 User Name(用户名)和 Password(口令)字段中,提供访问 Oracle Database 方案所需的身份证明。此信息用于预览数据,但不会保存在规则中。

-
单击预览可确保规则可以连接和检索数据,然后保存并关闭规则。
使用配置文件中预定义的 Oracle Call Interface 加载规则
要使用在 Essbase Server 的配置文件中定义的 net_service_name 将 Essbase 加载规则连接到 Oracle Database,
-
在 Essbase Server 上,在
<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) 。
-
在 Server(服务器)字段中,输入
tnsnames.ora配置文件中使用的 net_service_name。根据步骤 1 中给出的示例,输入OCISQL。 -
在查询字段中,输入用于访问 Oracle Database 所需数据的 SQL 查询。
-
在 User Name(用户名)和 Password(口令)字段中,提供访问 Oracle Database 方案所需的身份证明。此信息用于预览数据,但不会保存在规则中。

-
单击预览可确保规则可以连接和检索数据,然后保存并关闭规则。
连接故障排除
在 Windows 上,预览数据或使用使用 Oracle Call Interface (OCI) 连接字符串的规则运行维构建或数据加载可能会失败,并显示以下错误消息:
Attempt to connect to OCI failed. [ORA-12638: Credential retrieval failed].此问题的原因是版本 19c Oracle Database 服务器和 19c 客户端(在这种情况下,客户端是安装 Essbase Server 的位置)没有设置,或者在 tnsnames.ora(或 sqlnet.ora)中配置了以下设置:SQLNET.AUTHENTICATION_SERVICES=(NTS)
解决方案是在 Essbase Server 计算机上配置 SQLNET.AUTHENTICATION_SERVICES=(NONE)。
-
在
<Oracle Home>/network/admin中,找到配置文件。 -
打开文件并添加
SQLNET.AUTHENTICATION_SERVICES=(NONE) -
重新启动 Essbase 应用程序。
注意:
有关 Oracle Database 19c,请参阅 SQLNET.AUTHENTICATION_SERVICES 文档中的用法说明。