Преобразование строки в целое число в oracle

StackOverflow https://stackoverflow.com/questions/857059

  •  21-08-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

Столбцы ЧИСЕЛ всегда возвращаются в виде десятичных дробей в ODP.NET.Чтобы обойти это, извлеките его обратно как OracleDecimal , который имеет несколько методов "Toxxxx" для приведения значения к нужному вам собственному типу .NET.

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

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

Другие советы

CAST(field AS integer)

К_НОМЕР это то, чего вы хотите, в частности, TO_NUMBER('42', '99') версия.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top