Архив Категории: BI

Analyses and Dashboards Linux Publisher

Минутка с Linux и решение проблемы кириллических символов в OBIEE 12

Вот зря, зря я до сих пор не сходил на курс УЦ РДТЕХ Unix and Linux Essentials, ведь тогда найденное в интернете решение проблемы кириллических шрифтов в отчетах Oracle BI Analyses (в части выгрузки отчетов в формат PDF) и BI Publisher действительно заняло бы минуту. Но middleware-сервер оказался оснащен довольно скудно, поэтому, в отсутствии полезной утилиты Midnight Commander, пришлось вспоминать азы операций с файлами и директориями в командной строке. С помощью коллеги справились. Ведь решение просто предполагало скопировать недостающие шрифты из одной папки в другую (абсолютный путь к инсталляции Oracle Middleware на вашем сервере может быть другим)

[oracle@obiee12]$ cd /u00/app/oracle/Oracle/Middleware/Oracle_Home/bi/common/
[oracle@obiee12 common]$ mkdir fonts
[oracle@obiee12 common]$ cd /u00/app/oracle/Oracle/Middleware/Oracle_Home/oracle_common/internal/fonts/
[oracle@obiee12 fonts]$ ls
128R00.TTF  ADUOKB.ttf   ADUOTCB.ttf   ALBANWTK.ttf  B39R00.TTF
ADUOB.ttf   ADUOK.ttf    ADUOTC.ttf    ALBANWTS.ttf  MICR____.TTF
ADUOJB.ttf  ADUOSCB.ttf  ADUO.ttf      ALBANWTT.ttf  UPCR00.TTF
ADUOJ.ttf   ADUOSC.ttf   ALBANWTJ.ttf  ALBANYWT.ttf
[oracle@obiee12 fonts]$ cp *.ttf /u00/app/oracle/Oracle/Middleware/Oracle_Home/bi/common/fonts

Не обязательно быть крутым админом, чтобы быть программистом, но азы операций в командной строке, будь то Windows Shell или Linux (Unix), обязательно пригодятся! Ну и искусство поиска решений проблем в интернете тоже никто не отменял.

Analyses and Dashboards

Форматирование больших чисел в отчетах BI Answers

Как известно, при выводе больших чисел (как пример, цифр отчета о прибылях и убытках) OBIEE по непредсказуемому алгоритму отбрасывает значащие знаки после 15-ой цифры, иногда это может проявиться в десятичных знаках, а при слишком больших числах и в единицах, десятках, тысячах. Чтобы преодолеть это ограничение, в выражении для числовых столбцов реализовано преобразование числа в строку при помощи функции TO_CHAR():

SELECT
    TO_CHAR(12345678901234567890.09,
            '999G999G999G999G999G999G999G990D99',
            'nls_language=english')
  FROM DUAL;

Вывод при этом, конечно, текстовый, но со всеми значащими цифрами:

    12,345,678,901,234,567,890.09

В одном из запросов на изменение понадобилось в этом выводе подставлять пробелы вместо запятых в разделителях тысяч. Это решается таким способом:

SELECT
    TO_CHAR(12345678901234567890.09,
            '999G999G999G999G999G999G999G990D99',
            'nls_numeric_characters = ''. ''')
  FROM DUAL;

Результат радует:

    12 345 678 901 234 567 890.09

Остается добавить в отчете Answers выравнивание по правой границе и формат отображения текстовый с неразрывными пробелами, и отчет прекрасно выглядит! Конечно, при выгрузке в Excel форматирование чисел остается текстовым, но Заказчик согласен на такие условия.