У нас есть Biztalk для чтения данных из таблицы в Oracle путем вызова хранимой процедуры. Хранимая процедура возвращает строго типизированный курсор, и она нормально работала с Oracle 12.
Обновление до Oracle 18 возвращает ответ, как если бы курсор был набран слабо: https://docs.microsoft.com/en-us/biztalk/adapters-and-accelerators/adapter-oracle-database/message-schemas-for-ref-cursors
Эта ссылкаесть точная проблема, с которой мы сталкиваемся, но курсор строго типизирован.
Я попытался вернуть курсор ref, используя запись и детализацию, указав имена и типы столбцов. Это не работает. Версия Biztalk - 2013 R2.
Кто-нибудь сталкивался с этой проблемой в Oracle 18? Прекрасно работает с Oracle 12.
Строго типизированный курсор -
TYPE t_ReqCursor is REF CURSOR RETURN REQUEST%ROWTYPE
, а Biztalk читает что-то вроде
<GenRecordRow xmlns="http://Microsoft.LobServices.OracleDB/2007/03">
<GenRecordColumn>
<GenRecordColumn>
<ColumnName>AGNCY_RQST_ID</ColumnName>
<ColumnValue>545</ColumnValue>
<ColumnType>System.Int64</ColumnType>
</GenRecordColumn>
<GenRecordColumn>
<ColumnName>RQST_ID</ColumnName>
<ColumnValue>4344</ColumnValue>
<ColumnType>System.Int64</ColumnType>
</GenRecordColumn>
</GenRecordRow>