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,

  1. 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).

  2. Haga clic en Source Properties (Propiedades de origen).


    Botón Propiedades de origen en el editor de reglas de la interfaz web de Essbase

  3. Haga clic en Propiedades de SQL.

  4. En Propiedades, seleccione Oracle Call Interface (OCI).

  5. En el campo Servidor, introduzca la cadena de conexión de Oracle Database, con el formato <host>:<port>/<service_name>.

  6. En el campo Consulta, introduzca una consulta SQL que acceda a los datos que necesita de Oracle Database.

  7. 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.


    Cuadro de diálogo Propiedades SQL. La opción Properties seleccionada es Oracle Call Interface (OCI). El campo Servidor tiene la cadena de conexión de OCI con el formato DatabaseServerName:PortNumber/ServiceName. Una consulta SQL de ejemplo se encuentra en el campo Consulta. Se han introducido un nombre de usuario y una contraseña.

  8. 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,

  1. 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.
  2. 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).

  3. Haga clic en Source Properties (Propiedades de origen).


    Botón Propiedades de origen en el editor de reglas de la interfaz web de Essbase

  4. Haga clic en Propiedades de SQL.

  5. En Propiedades, seleccione Oracle Call Interface (OCI).

  6. 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, introduzca OCISQL.

  7. En el campo Consulta, introduzca una consulta SQL que acceda a los datos que necesita de Oracle Database.

  8. 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.


    Cuadro de diálogo Propiedades SQL. La opción Properties seleccionada es Oracle Call Interface (OCI). El campo Servidor tiene la conexión de OCI net_service_name. Una consulta SQL de ejemplo se encuentra en el campo Consulta. Se han introducido un nombre de usuario y una contraseña.

  9. 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.

  1. En <Oracle Home>/network/admin, localice el archivo de configuración.

  2. Abra el archivo y agregue SQLNET.AUTHENTICATION_SERVICES=(NONE)

  3. 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.