#sql #database #oracle #types #getschematable
#sql #База данных #Oracle #типы #getschematable
Вопрос:
Выполнение table = reader.GetSchemaTable(); на sql server 2005 возвращает мне столбец DataTypeName, чтобы узнать тип данных моего оператора select.
Выполнение того же кода на сервере Oracle не возвращает мне столбец DataTypeName.
Как затем получить имя типа данных для поля column1, используя инструкцию select column1 from tablename ?
Ответ №1:
Ну, какой читатель вы используете, есть OracleDataReader.GetSchemaTable
метод, который должен выдавать то, что вы хотите
Комментарии:
1. необходимо использовать DbDataReader.
Ответ №2:
При использовании Oracle DbDataReader.GetSchemaTable не работает.
Вы можете использовать OracleDataReader.GetSchemaTable.
Другим вариантом было бы выполнить итерацию через поля DbDataReader, например, так:
public bool Test(DbDataReader _dr, string columnName)
{
for (int i = 0; i <= _dr.FieldCount - 1; i )
{
if ((_dr.GetName(i).Equals(columnName, StringComparison.InvariantCultureIgnoreCase)))
{
//Change this to your needs
_dr.GetDataTypeName(i);
return true;
}
}
return false;
}