Accedi a Oracle Database mediante Oracle Call Interface

Se si utilizzano applicazioni sviluppate con Oracle Call Interface (OCI), è possibile connettere le regole di caricamento di Essbase a Oracle Database utilizzando una stringa di connessione OCI o un nome di servizio di rete definito in un file di configurazione tnsnames.ora sul server Essbase.

Proprietà regola con stringa di connessione di Oracle Call Interface

Per connettere una regola di caricamento Essbase a Oracle Database utilizzando una stringa di connessione OCI,

  1. Nell'interfaccia Web Essbase aprire una regola esistente o crearne una nuova (vedere Accedi e modifica regole, Crea nuova regola di generazione dimensione o Crea nuova regola di caricamento dati).

  2. Fare clic su Proprietà origine.


    Pulsante Proprietà di origine nell'editor regole dell'interfaccia Web Essbase

  3. Fare clic su Proprietà SQL.

  4. In Proprietà, selezionare Oracle Call Interface (OCI).

  5. Nel campo Server immettere la stringa di connessione di Oracle Database nel formato <host>:<port>/<service_name>.

  6. Nel campo Query immettere una query SQL che accede ai dati necessari da Oracle Database.

  7. Nei campi Nome utente e Password fornire le credenziali necessarie per accedere allo schema di Oracle Database. Queste informazioni vengono utilizzate per l'anteprima dei dati, ma non verranno salvate nella regola.


    Finestra di dialogo Proprietà SQL. L'opzione Proprietà selezionata è Oracle Call Interface (OCI). Il campo Server contiene la stringa di connessione OCI in formato DatabaseServerName:PortNumber/ServiceName. Una query SQL di esempio si trova nel campo Query. Sono stati immessi nome utente e password.

  8. Fare clic su Anteprima per assicurarsi che la regola possa connettersi e recuperare i dati, quindi salvare e chiudere la regola.

Regola di caricamento con Oracle Call Interface predefinita nel file di configurazione

Per connettere una regola di caricamento Essbase a Oracle Database utilizzando un net_service_name definito in un file di configurazione sul server Essbase,

  1. Nel server Essbase creare un file di configurazione (ad esempio, denominato tnsnames.ora) in <Oracle Home>/network/admin.

    Se il file di configurazione esiste già, assicurarsi che disponga di una voce valida per la connessione a Oracle Database mediante Oracle Call Interface (OCI). In caso contrario, configurarlo ora. Nell'esempio seguente,

    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. Prendi nota di questo nome, di cui avrai bisogno per i prossimi passi.
    • L'host è oraclehost.example.com
    • La porta è 1521.
    • Il nome servizio è orcl.example.com.
  2. Nell'interfaccia Web di Essbase, aprire una regola di caricamento dati o di generazione dimensione esistente oppure crearne una nuova (vedere Accedi e modifica regole, Crea nuova regola di generazione dimensione o Crea nuova regola di caricamento dati).

  3. Fare clic su Proprietà origine.


    Pulsante Proprietà di origine nell'editor regole dell'interfaccia Web Essbase

  4. Fare clic su Proprietà SQL.

  5. In Proprietà, selezionare Oracle Call Interface (OCI).

  6. Nel campo Server immettere net_service_name utilizzato nel file di configurazione tnsnames.ora. In base all'esempio riportato al passo 1, immettere OCISQL.

  7. Nel campo Query immettere una query SQL che accede ai dati necessari da Oracle Database.

  8. Nei campi Nome utente e Password fornire le credenziali necessarie per accedere allo schema di Oracle Database. Queste informazioni vengono utilizzate per l'anteprima dei dati, ma non verranno salvate nella regola.


    Finestra di dialogo Proprietà SQL. L'opzione Proprietà selezionata è Oracle Call Interface (OCI). Il campo Server contiene la connessione OCI net_service_name. Una query SQL di esempio si trova nel campo Query. Sono stati immessi nome utente e password.

  9. Fare clic su Anteprima per assicurarsi che la regola possa connettersi e recuperare i dati, quindi salvare e chiudere la regola.

Risoluzione dei problemi di connettività

In Windows, l'anteprima dei dati o l'esecuzione di una generazione di dimensioni o il caricamento dei dati con una regola che utilizza una stringa di connessione Oracle Call Interface (OCI) potrebbe non riuscire con il seguente messaggio di errore:

Attempt to connect to OCI failed. [ORA-12638: Credential retrieval failed].

La causa di questo problema è che il server Oracle Database versione 19c e il client 19c (in questo caso il client è dove è installato Essbase Server) non ha alcuna impostazione o ha la seguente impostazione configurata in tnsnames.ora (o sqlnet.ora): SQLNET.AUTHENTICATION_SERVICES=(NTS)

La soluzione consiste nella configurazione di SQLNET.AUTHENTICATION_SERVICES=(NONE) nel computer Essbase Server.

  1. Individuare il file di configurazione in <Oracle Home>/network/admin.

  2. Aprire il file e aggiungere SQLNET.AUTHENTICATION_SERVICES=(NONE)

  3. Riavviare l'applicazione Essbase.

Nota

Consultare le note sull'uso nella documentazione SQLNET.AUTHENTICATION_SERVICES per Oracle Database 19c.