Преобразование строки в целое число в оракуле - PullRequest
4 голосов
/ 13 мая 2009

Я пытаюсь разобрать столбец строк в Oracle (версия 8i) в целое число.

Я получаю доступ к результатам через библиотеку Oracle.DataAccess

Я уже использую TO_NUMBER с маской для преобразования строки в число без десятичных разрядов. Проблема в том, что значение в клиентском коде извлекается как десятичное, а не как целое число.

Ответы [ 4 ]

7 голосов
/ 13 мая 2009
CAST(field AS integer)
3 голосов
/ 13 мая 2009

NUMBER столбцы всегда возвращаются как десятичные числа в ODP.NET. Чтобы обойти это, извлеките его обратно как OracleDecimal, который имеет несколько методов «Toxxxx» для преобразования значения в нужный вам тип .NET.

while (myOracleDataReader.Read())
{
    int x = myOracleDataReader.GetOracleDecimal(0).ToInt32();
}

(Простите, если приведенный выше код неверен на 100%, так как у меня дома не установлен ODP.NET.)

1 голос
/ 13 мая 2009

TO_NUMBER - это то, что вы хотите, в частности, версия TO_NUMBER('42', '99').

0 голосов
/ 13 мая 2009

Вы всегда можете превратить десятичное число в целое, используя функцию округления (или функции усечения или этажа)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...