В Oracle Business Intelligence 11g при построении отчетов с использованием 11-ти и более измерений или столбцов с разных уровней базы Essbase возникает ошибка:
Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119] Query Failed: [nQSError: 42015] Cannot function ship the following expression: AggrExternal(…..
При исследовании проблеммы обнаружилось, что дело в репозитории, в параметре базы физического уровня MAX_COLUMNS_IN_GROUP_BY (Features). Экспериментальным путем было определено, что Oracle BI 11g Analytic Server в в запросе использует по 3 колонки в группироке на уровень измерения, т.е. чтобы запросы к Essbase строились без ошибок надо рассчитать значение по формуле “MAX_COLUMNS_IN_GROUP_BY = Количество уровней всех измерений X 3”.
Чтобы поменять параметр, откройте репозиторий в Oracle BI Administration Tool и зайдите в свойства (Properties) базы данных на физическом уровне.
Перейдите на вкладку Features и увеличте параметр MAX_COLUMNS_IN_GROUP_BY с 32 до достаточного, например, до 90.
Если читателям этой заметки известны другие тонкости или проблеммы сочетания BI 11g + Essbase предлагаю обсудить на форуме.