展開鑽研報表中 SQL IN 子句的限制

將 SQL IN 子句限制增加到超過預設 1000 個成員,以解決鑽研報表錯誤。

鑽研報表因發生錯誤而失敗

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

因為 SQL IN 子句預設限制為 1000 個成員,所以會失敗。Essbase 與 Oracle Database 的預設值存在。

警示:

Essbase 平台包含 <DOMAIN HOME>/bin 中的命令檔,可自訂 Essbase 功能的環境與行為。如果變更這些網域環境或啟動命令檔,可能會有未預期的後果,包括啟動失敗。Oracle 建議您先在測試環境中進行變更。編輯這些命令檔之前,請務必:

  1. 停止 Essbase 受管理伺服器,使用 <DOMAIN HOME>/esstools/bin/stop.sh (在 Linux 上) 或 <DOMAIN HOME>\esstools\bin\stop.cmd (在 Windows 上)。

  2. <DOMAIN HOME>/bin 中,備份您要編輯的檔案。範例:

    在 Linux 上

    cp setStartupEnv.sh setStartupEnv_bak.sh

    在 Windows 上

    copy setStartupEnv.cmd setStartupEnv_bak.cmd
  3. 請小心謹慎地進行編輯,只使用 Oracle 提供的指示,或洽詢 Oracle 客戶服務部。

  4. 使用 <DOMAIN HOME>/esstools/bin/start.sh (在 Linux 上) 或 <DOMAIN HOME>\esstools\bin\start.cmd (在 Windows 上) 重新啟動 Essbase。確定啟動正常完成。

若要增加鑽研的 SQL IN 子句限制,如果外部資料庫支援展開的限制,

  1. 停止 Essbase 服務 (請參閱停止、啟動及檢查伺服器 )。
  2. 在部署 Essbase 的機器上,導覽至 <Domain Home>/bin (請參閱 Essbase 平台中的環境位置 )。
  3. 建立啟動命令檔 setStartupEnv.sh (Linux) 或 setStartupEnv.bat (Windows) 的備份複本。以不同的名稱儲存它;例如:cp setStartupEnv.sh setStartupEnv_orig.sh
  4. 開啟 setStartupEnv.shsetStartupEnv.bat 進行編輯。
  5. 新增組態明細行以增加超過 1000 的限制。

    Linux 範例 (setStartupEnv.sh):

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

    Windows 範例 (setStartupEnv.bat):

    set JAVA_OPTIONS=%JAVA_OPTIONS% "-Ddtr.in.clause.limit=15000"
  6. 儲存 setStartupEnv.shsetStartupEnv.bat
  7. 啟動 Essbase 服務 (請參閱停止、啟動和檢查伺服器 )。