Acceso a Oracle Database mediante Oracle Call Interface
Si utiliza aplicaciones desarrolladas con Oracle Call Interface (OCI), puede conectar reglas de carga de Essbase a Oracle Database mediante una cadena de conexión de OCI o un nombre de servicio de red definido en un archivo de configuración tnsnames.ora en el servidor de Essbase.
Propiedades de regla con cadena de conexión de Oracle Call Interface
Para conectar una regla de carga de Essbase a Oracle Database mediante una cadena de conexión de OCI,
-
En la interfaz web de Essbase, abra una regla existente o cree una nueva (consulte Reglas de acceso y edición, Crear nueva regla de creación de dimensión o Crear nueva regla de carga de datos).
-
Haga clic en Source Properties (Propiedades de origen).

-
Haga clic en Propiedades de SQL.
-
En Propiedades, seleccione Oracle Call Interface (OCI).
-
En el campo Servidor, introduzca la cadena de conexión de Oracle Database, con el formato
<host>:<port>/<service_name>. -
En el campo Consulta, introduzca una consulta SQL que acceda a los datos que necesita de Oracle Database.
-
En los campos Nombre de usuario y Contraseña, proporcione las credenciales necesarias para acceder al esquema de Oracle Database. Esta información se utiliza para obtener una vista previa de los datos, pero no se guardará en la regla.

-
Haga clic en Vista previa para asegurarse de que la regla puede conectar y recuperar datos y, a continuación, guardar y cerrar la regla.
Regla de carga con Oracle Call Interface predefinida en el archivo de configuración
Para conectar una regla de carga de Essbase a Oracle Database mediante un nombre_servicio_red definido en un archivo de configuración del servidor de Essbase,
-
En el servidor de Essbase, cree un archivo de configuración (por ejemplo, denominado
tnsnames.ora) en<Oracle Home>/network/admin.Si el archivo de configuración ya existe, asegúrese de que tiene una entrada válida para conectarse a Oracle Database mediante Oracle Call Interface (OCI). De lo contrario, configúrelo ahora. En el siguiente ejemplo,
OCISQL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oraclehost.example.com)(PORT = 1521)) ) (CONNECT_DATA = (service_name = orcl.example.com) (SERVER = DEDICATED) ) )- El nombre_servicio_red es
OCISQL. Tome nota de este nombre, que necesitará para los siguientes pasos. - El host es
oraclehost.example.com. - El puerto es
1521. - El nombre del servicio es
orcl.example.com.
- El nombre_servicio_red es
-
En la interfaz web de Essbase, abra una carga de datos existente o una regla de creación de dimensión, o bien cree una nueva (consulte Reglas de acceso y edición, Crear nueva regla de creación de dimensión o Crear nueva regla de carga de datos).
-
Haga clic en Source Properties (Propiedades de origen).

-
Haga clic en Propiedades de SQL.
-
En Propiedades, seleccione Oracle Call Interface (OCI).
-
En el campo Servidor, introduzca el nombre_servicio_red utilizado en el archivo de configuración
tnsnames.ora. Según el ejemplo proporcionado en el paso 1, introduzcaOCISQL. -
En el campo Consulta, introduzca una consulta SQL que acceda a los datos que necesita de Oracle Database.
-
En los campos Nombre de usuario y Contraseña, proporcione las credenciales necesarias para acceder al esquema de Oracle Database. Esta información se utiliza para obtener una vista previa de los datos, pero no se guardará en la regla.

-
Haga clic en Vista previa para asegurarse de que la regla puede conectar y recuperar datos y, a continuación, guardar y cerrar la regla.
Solución de problemas de conectividad
En Windows, la vista previa de datos o la ejecución de una creación de dimensión o carga de datos con una regla que utiliza una cadena de conexión de Oracle Call Interface (OCI) puede fallar con el siguiente mensaje de error:
Attempt to connect to OCI failed. [ORA-12638: Credential retrieval failed].La causa de este problema es que el servidor de Oracle Database versión 19c y el cliente 19c (en este caso, el cliente es donde está instalado Essbase Server) no tienen ningún valor o tienen el siguiente valor configurado en tnsnames.ora (o sqlnet.ora): SQLNET.AUTHENTICATION_SERVICES=(NTS)
La solución consiste en configurar SQLNET.AUTHENTICATION_SERVICES=(NONE) en el equipo de Essbase Server.
-
En
<Oracle Home>/network/admin, localice el archivo de configuración. -
Abra el archivo y agregue
SQLNET.AUTHENTICATION_SERVICES=(NONE) -
Reinicie la aplicación de Essbase.
Note:
Consulte las notas de uso de la documentación de SQLNET.AUTHENTICATION_SERVICES para obtener información sobre Oracle Database 19c.