Проблема с Direct Database Request к Essbase в Oracle BI EE

Источник: oraclebi
Андрей Пивоваров

Автор: Андрей Пивоваров

В Oracle BI EE есть интересная возможность написать запрос непосредственно к базе данных, минуя метаслой BI. Называется это Direct Database Request. Это иногда бывает полезно, когда нужен какой-то разовый отчет, а метаданных для него нет и создавать долго.

Эту возможность нужно использовать с осторожностью, поэтому по умолчанию она выключена даже у администратора.

В случае Essbase пользы от нее больше, так как через метаслой не ко всем объектам Essbase вообще можно обратиться. Но при работе с Direct Database Request есть неприятный баг.

Возьмем, к примеру, такой запрос:

view plaincopy to clipboardprint?
 

Если мы попробуем его распарсить, то есть определить какие колонки будут в отчете - все ок, но если попытаться получить результат - появляется ошибка, подобная этой:

Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43093] An error occurred while processing the EXECUTE PHYSICAL statement. [nQSError: 46008] Internal error: File .\Src\SQXDGEssbaseCAPI.cpp, line 1050. (HY000)

Это баг. Он открыт довольно давно. Его номер на металинке - 6869282. И он уже какое то время был в непонятном состоянии - проблема есть, но причина не известна.

И вот недавно, благодаря энтузиазму Романа Колеченкова удалось сдвинуть его с мертвой точки и разработчики выяснили, что есть проблема в парсере MDX запросов, причем обойти ее довольно просто. Достаточно окружить выражение "FROM", например двумя пробелами.

То есть тот же запрос, переписанный так:

view plaincopy to clipboardprint?

работает.

Баг воспроизодится у меня в версии BI EE 10.1.3.4.1. Проблему обещают устранить в следующем релизе Oracle BI EE.


Страница сайта http://www.interface.ru
Оригинал находится по адресу http://www.interface.ru/home.asp?artId=21396