2016-04-13 3 views
1

Я переношу 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, я обновлю вопрос с соответствующей информацией, как только смогу получить некоторые (мне нужно дождаться появления экземпляров, я не могу их запускать самостоятельно).

+3

Я думаю, это проблема NLS (большинство ORA-01722 оказываются IME); используете ли вы те же настройки NLS для обоих экземпляров Oracle? На обоих клиентах/DBAdapters? У вас есть числа с плавающей запятой в вашем входе (например, «12.1» - это будет радостно анализировать с английскими настройками NLS, но поднять ORA-01722, если вы используете немецкие настройки)? –

+0

@FrankSchmitt оказалось, что проблема была вызвана настройками NLS. Пожалуйста, опубликуйте это как ответ, потому что вы определенно заслуживаете очков. – Numbers

+0

Выполнено :-) (lorem ipsum у нас уже есть 15 символов? Да у нас есть) –

ответ

2

Я бы предположил, что это проблема NLS (большинство ORA-01722 оказываются связанными с NLS в моем опыте).

Вещи вы должны проверить:

  • вы используете одни и те же параметры NLS в обоих случаях Oracle?
  • Вы используете те же настройки NLS для обоих клиентов/DBAdapters?
  • делает номера вы с плавающей точкой в ​​вашем входе (например, «12,1» - это будет счастливо синтаксическим с настройками английского NLS, но поднять ORA-01722, если вы используете немецкие настройки)
Смежные вопросы