В IIB 10 получение ошибки «Неверный оператор SQL» от Oracle SP, которая возвращает refcursor - PullRequest
0 голосов
/ 19 декабря 2018

Недавно мы перешли с 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" ;

Не могли бы вы помочь нам исправить эту проблему?

...