У меня есть хранимая процедура в Oracle, которая возвращает набор (ы) результатов через параметр (ы) OUT типа 'SYS_REFCURSOR'.
Мне нужно получить информацию о столбце этого набора результатов через ADO.NET.Я выполняю хранимую процедуру, создав параметры (OracleParameter.OracleDbType = OracleDbType.ReCursor и т. Д.) И вызвав «OracleCommand.ExecuteReader» (CommandBehavior.SchemaOnly).Затем я вызываю «reader.GetSchemaTable» для результирующего считывателя, чтобы получить DataTable, который описывает схему набора результатов.
OracleCommand command = oracleConnection.CreateCommand();
command.CommandText = "ProcedureName";
command.CommandType = System.Data.CommandType.StoredProcedure;
OracleParameter refParameter = command.CreateParameter();
refParameter.Name = "refCursorParam";
refParameter.Direction = System.Data.ParameterDirection.Output;
refParameter.OracleDbType = OracleDbType.ReCursor;
command.Parameters.Add(dbParameter);
var reader = command.ExecuteReader(System.Data.CommandBehavior.SchemaOnly);
var dataTable = reader.GetSchemaTable();
Моя проблема в том, что информация для каждого столбца набора результатов является неполной.У меня нет информации о типе данных oracle в столбце (я получаю имя столбца, его допустимость, длину и т. Д.).Единственная информация о типе, которую я получаю, - это тип CLR, в который может быть сопоставлен столбец.
Я делаю что-то не так или есть лучший подход для получения информации о столбце для набора результатов, возвращаемого через курсор OUT ref?