Я переношу BPEL-процесс с SOA 10g на SOA 12c.Вызов хранимой процедуры приводит к разным результатам в SOA 10g и SOA 12c
Я настроил DBAdapter для вызова той же хранимой процедуры с той же полезной нагрузкой ввода.
Проблема в том, что на SOA 10g все нормально, и процедура возвращает как пользовательский вывод код ошибки 0 и «ОК» в качестве сообщения. В SOA 12c вместо этого процедура прерывается в какой-то момент и возвращает код ошибки -1722 и «Недопустимый номер» в качестве сообщения (что обязательно является внутренней обработкой ошибки базы данных ORA-01722). Я не могу отлаживать хранимую процедуру, чтобы увидеть, на какой строке она ломается.
Мой вопрос: какой параметр низкого уровня может повлиять на это? Это список идей, которые я имел до сих пор и чеки я уже сделал:
- база данных, на которой был установлен SOA использует кодировку от AL32UTF8, который является рекомендуемым. Я не знаю, может ли это быть проблемой, но, я думаю, нет, поскольку обе версии SOA используют одну и ту же базу данных.
- Полезная нагрузка ввода одинакова в обоих случаях во всех соответствующих полях. Я проверил, загрузив XML из Enterprise Manager и сравнив его с Meld; по крайней мере, из этого я не заметил никакой разницы.
Я предполагаю, что в какой-то момент в кодировке возникает проблема, которая отправляет нечетные данные из WebLogic в базу данных. Я только что включил журналы для используемого пула соединений DbAdapter, я обновлю вопрос с соответствующей информацией, как только смогу получить некоторые (мне нужно дождаться появления экземпляров, я не могу их запускать самостоятельно).
Я думаю, это проблема NLS (большинство ORA-01722 оказываются IME); используете ли вы те же настройки NLS для обоих экземпляров Oracle? На обоих клиентах/DBAdapters? У вас есть числа с плавающей запятой в вашем входе (например, «12.1» - это будет радостно анализировать с английскими настройками NLS, но поднять ORA-01722, если вы используете немецкие настройки)? –
@FrankSchmitt оказалось, что проблема была вызвана настройками NLS. Пожалуйста, опубликуйте это как ответ, потому что вы определенно заслуживаете очков. – Numbers
Выполнено :-) (lorem ipsum у нас уже есть 15 символов? Да у нас есть) –