Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Oracle BI. Подменить NLS_NUMERIC_CHARACTERS в отчетн. сессии при вып-ии Before Data тригге  [new]
Be or not to be...
Guest
Доброго дня!
Имеется репорт в BI. Среди параметров есть пара с типом "С плавающей точкой". Туда могут записываться дробные числа вроде процентной ставки по депозитному договору. В дата модели имеется несколько Before data триггеров, выполняющих некие процедуры.

В сессии BI установлена NLS_NUMERIC_CHARACTERS=".,"

Если пользователь передает значение параметра с запятой, то оно просто игнорируется - в процедуру триггером передается null. При этом, если передать значение с точкой, либо целое число, то оно передается корректно.

Что попробовал сделать:

- первым триггером выполнил процедуру с EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_NUMERIC_CHARACTERS= '',.'' ', дабы понять начнет ли восприниматься значение с запятой. Вторым триггером считал NLS_NUMERIC_CHARACTERS сменилось на '',.'', но значение параметра в процедуре, вызываемой вторым триггером - null

- в описании вызываемой триггером процедуры пробовал некие to_number(replace(, ',', '.')). Результата не последовало

- пробовал менять типы данных для этих параметров на строки - работает, конечно. Значение можно было бы обработать в коде самостоятельно, но в таком случае придется сменить тип поля для параметра в BI на "Строка", что повлечет за собой ошибки ввода по стороны пользователей и т.д.


Прошу помощи. Что делать, куда смотреть?
31 окт 17, 14:20    [20915643]     Ответить | Цитировать Сообщить модератору
 Re: Oracle BI. Подменить NLS_NUMERIC_CHARACTERS в отчетн. сессии при вып-ии Before Data тригге  [new]
Be or not to be...
Guest
Жду Джека или еще кого..
1 ноя 17, 13:25    [20918769]     Ответить | Цитировать Сообщить модератору
 Re: Oracle BI. Подменить NLS_NUMERIC_CHARACTERS в отчетн. сессии при вып-ии Before Data тригге  [new]
AmKad
Member

Откуда:
Сообщений: 4841
Если передавать число как число в числовой параметр, то нет никакой зависимости от NLS_NUMERIC_CHARACTERS. Проверяй типы данных на клиенте и сервере.
1 ноя 17, 13:56    [20918869]     Ответить | Цитировать Сообщить модератору
 Re: Oracle BI. Подменить NLS_NUMERIC_CHARACTERS в отчетн. сессии при вып-ии Before Data тригге  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 16420
AmKad
Если передавать число как число в числовой параметр, то нет никакой зависимости от NLS_NUMERIC_CHARACTERS. Проверяй типы данных на клиенте и сервере.

У ТС по ходу вопрос про сам BI.
Не ясно лишь, про какой именно :)
1 ноя 17, 13:59    [20918887]     Ответить | Цитировать Сообщить модератору
 Re: Oracle BI. Подменить NLS_NUMERIC_CHARACTERS в отчетн. сессии при вып-ии Before Data тригге  [new]
AmKad
Member

Откуда:
Сообщений: 4841
andrey_anonymous
Не ясно лишь, про какой именно :)
Шифруется по полной.
1 ноя 17, 15:23    [20919210]     Ответить | Цитировать Сообщить модератору
 Re: Oracle BI. Подменить NLS_NUMERIC_CHARACTERS в отчетн. сессии при вып-ии Before Data тригге  [new]
Be or not to be...
Guest
Именно про сам BI. Про число и "числовой параметр" то ясно :)
Если в BI выставить тип данных параметра "Целое число", то дробная часть просто игнорируется, что и логично. Не мой вариант
Поэтому с плавающей точкой. Но никаких проверок на вводе BI не реализует. Пока обошелся значением по умолчанию "0.0", чтобы юзеру была ясна концепция, но сути дела это не меняет - будет введена запятая и опять будут проблемы.


Oracle Business Intelligence 12.2.1.0.0
2 ноя 17, 07:19    [20920779]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить