Возврат ссылки на курсор из хранимой процедуры oracle с использованием DAAB из MS EntLib 4.1
Можно ли получить курсор ref из хранимой процедуры Oracle с помощью DAAB из Microsoft Enterprise Library 4.1?
2 ответа
Решение
Да, конечно, вы можете.
PROCEDURE load_all (
p_row_start IN number,
p_page_size IN number,
cur_out OUT sys_refcursor
) AS
...
И на стороне C#:
DbCommand cmd = db.GetStoredProcCommand("my_package.load_all", paramValues))
IDataReader r = db.ExecuteReader(cmd);
...
Параметр RefCursor должен называться cur_out.
DAAB не дает нам возможности получить Ref Refsor. Проблема заключается в том, что System.Data.Common не имеет типа DbType.Cursor или DbType.RefCursor. Таким образом, в исходном коде DAAB 4.1 требуется небольшая настройка. Пожалуйста, следуйте инструкциям, приведенным в следующей ссылке. Это работает как кусок пирога.