展開鑽研報表中 SQL IN 子句的限制
將 SQL IN 子句限制增加到超過預設 1000 個成員,以解決鑽研報表錯誤。
鑽研報表因發生錯誤而失敗
'ERROR: relation <member name> does not exist'
因為 SQL IN 子句預設限制為 1000 個成員,所以會失敗。Essbase 與 Oracle Database 的預設值存在。
警示:
Essbase 平台包含 <DOMAIN HOME>/bin 中的命令檔,可自訂 Essbase 功能的環境與行為。如果變更這些網域環境或啟動命令檔,可能會有未預期的後果,包括啟動失敗。Oracle 建議您先在測試環境中進行變更。編輯這些命令檔之前,請務必:
-
停止 Essbase 受管理伺服器,使用
<DOMAIN HOME>/esstools/bin/stop.sh(在 Linux 上) 或<DOMAIN HOME>\esstools\bin\stop.cmd(在 Windows 上)。 -
在
<DOMAIN HOME>/bin中,備份您要編輯的檔案。範例:在 Linux 上
cp setStartupEnv.sh setStartupEnv_bak.sh在 Windows 上
copy setStartupEnv.cmd setStartupEnv_bak.cmd -
請小心謹慎地進行編輯,只使用 Oracle 提供的指示,或洽詢 Oracle 客戶服務部。
-
使用
<DOMAIN HOME>/esstools/bin/start.sh(在 Linux 上) 或<DOMAIN HOME>\esstools\bin\start.cmd(在 Windows 上) 重新啟動 Essbase。確定啟動正常完成。
若要增加鑽研的 SQL IN 子句限制,如果外部資料庫支援展開的限制,
- 停止 Essbase 服務 (請參閱停止、啟動及檢查伺服器 )。
- 在部署 Essbase 的機器上,導覽至
<Domain Home>/bin(請參閱 Essbase 平台中的環境位置 )。 - 建立啟動命令檔
setStartupEnv.sh(Linux) 或setStartupEnv.bat(Windows) 的備份複本。以不同的名稱儲存它;例如:cp setStartupEnv.sh setStartupEnv_orig.sh - 開啟
setStartupEnv.sh或setStartupEnv.bat進行編輯。 - 新增組態明細行以增加超過 1000 的限制。
Linux 範例 (setStartupEnv.sh):
JAVA_OPTIONS="${JAVA_OPTIONS} -Ddtr.in.clause.limit=15000" export JAVA_OPTIONSWindows 範例 (setStartupEnv.bat):
set JAVA_OPTIONS=%JAVA_OPTIONS% "-Ddtr.in.clause.limit=15000" - 儲存
setStartupEnv.sh或setStartupEnv.bat。 - 啟動 Essbase 服務 (請參閱停止、啟動和檢查伺服器 )。