Espandere il limite per le clausole SQL IN nei report drill-through

Risolvere un errore di drill-through aumentando il limite della clausola SQL IN oltre il valore predefinito di 1000 membri.

Se i report drill-through non riescono con errori

'ERROR: relation <member name> does not exist'

L'errore si verifica perché le clausole SQL IN sono limitate a 1000 membri per impostazione predefinita. Questo valore predefinito esiste per Essbase e per Oracle Database.

Attenzione

La piattaforma Essbase include script in <DOMAIN HOME>/bin in grado di personalizzare l'ambiente e i comportamenti della funzionalità Essbase. Tuttavia, apportare modifiche a questi script dell'ambiente di dominio o di avvio può avere effetti indesiderati, incluso il mancato avvio. Oracle consiglia di apportare le modifiche prima in un ambiente di test. Prima di modificare questi script, effettuare sempre le operazioni riportate di seguito.

  1. Arrestare i server gestiti di Essbase utilizzando <DOMAIN HOME>/esstools/bin/stop.sh (in Linux) o <DOMAIN HOME>\esstools\bin\stop.cmd (in Windows).

  2. In <DOMAIN HOME>/bin, fare una copia di backup del file che si desidera modificare. Di seguito sono riportati alcuni esempi.

    in Linux

    cp setStartupEnv.sh setStartupEnv_bak.sh

    in Windows

    copy setStartupEnv.cmd setStartupEnv_bak.cmd
  3. Apportare le modifiche con attenzione, utilizzando solo le istruzioni documentate di Oracle o collaborando con il Supporto Oracle.

  4. Riavviare Essbase utilizzando <DOMAIN HOME>/esstools/bin/start.sh (su Linux) o <DOMAIN HOME>\esstools\bin\start.cmd (su Windows). Verificare che l'avvio sia stato completato normalmente.

Per aumentare il limite della clausola SQL IN per il drill-through, se i limiti espansi sono supportati dal database esterno,

  1. Arrestare i servizi Essbase (vedere Server di arresto, avvio e controllo).
  2. Sul computer in cui è distribuito Essbase, passare a <Domain Home>/bin (vedere Posizioni degli ambienti nella piattaforma Essbase).
  3. Eseguire una copia di backup dello script di avvio, setStartupEnv.sh (Linux) o setStartupEnv.bat (Windows). Salvarlo con un nome diverso; ad esempio: cp setStartupEnv.sh setStartupEnv_orig.sh
  4. Aprire setStartupEnv.sh o setStartupEnv.bat per la modifica.
  5. Aggiungere le linee di configurazione per aumentare il limite oltre 1000.

    Esempio di Linux (setStartupEnv.sh):

    JAVA_OPTIONS="${JAVA_OPTIONS} -Ddtr.in.clause.limit=15000" export JAVA_OPTIONS

    Esempio di Windows (setStartupEnv.bat):

    set JAVA_OPTIONS=%JAVA_OPTIONS% "-Ddtr.in.clause.limit=15000"
  6. Salvare setStartupEnv.sh o setStartupEnv.bat.
  7. Avviare i servizi Essbase (vedere Arresta, Avvia e Controlla server).