Недавно мы перешли с IIB 9 на IIB 10.0.0.14.У нас был один сервис (выполненный в IIB9), который вызывает Oracle SP, который возвращает курсор Ref в выходном параметре.
Служба работала нормально в IIB 9. Но после перехода на IIB 10 эта же служба возвращает
[IBM] [драйвер ODBC 20101] [Oracle] ORA-00900: неверный оператор SQL
, когда процедура возвращает No Data found
ошибка.Сервис работает нормально, если найдены данные по заданному параметру.
Подпись Oracle SP
CREATE OR REPLACE procedure CONSOLIDATE_EXCH_RATE(
Exchange_Dt IN varchar2,
ALPHAISOCODE IN varchar2,
Error_Code OUT varchar2,
Error_Desc OUT varchar2,
ORA_ERROR_CODE OUT varchar2,
ORA_ERROR_DESC OUT varchar2,
ExchangeRateDtls OUT sys_refcursor)
А из службы IIB мы называем этот SP следующим:
CALL CONSOLIDATE_EXCH_RATE(
COALESCE(ExchangeDt,''),
COALESCE(AlphaCurCode,''),
Environment.Variables.ErrorCode,
Environment.Variables.ErrorDesc,
Environment.Variables.ORAErrorCode,
Environment.Variables.ORAErrorDesc,
Environment.Variables.ExchangeRateDtls[]
CREATE PROCEDURE CONSOLIDATE_EXCH_RATE (
IN EXCHANGE_DT CHARACTER,
IN ISO_CURCODE CHARACTER,
OUT ErrorCode CHARACTER,
OUT ErrorDesc CHARACTER,
OUT ORAERRORCODE CHARACTER,
OUT ORAERRORDESC CHARACTER)
DYNAMIC RESULT SETS 1
EXTERNAL NAME "%.CONSOLIDATE_EXCH_RATE" ;
Не могли бы вы помочь нам исправить эту проблему?