Приведено как десятичное число (38,12) в HQL

#c# #nhibernate #hql #castle-activerecord

#c# #nhibernate #hql #castle-activerecord

Вопрос:

Я использую NHibernate с активной записью и пытаюсь суммировать столбец и вернуть результат. Столбец является десятичным числом (38,12). Однако, когда я делаю это, я получаю исключение SQL:

«Ошибка арифметического переполнения при преобразовании числового типа данных в числовой»

Я запустил профилировщик и вижу, что проблема заключается в том, что генерируемый SQL-запрос использует десятичную систему счисления (19,5).

Есть мысли о том, как это обойти? Я включил часть моего HQL ниже:

 select new MyObject(
                        cast(sum(abs(oo.Total)) as decimal)
                        )
                        from OtherObject oo
  

Комментарии:

1. Я получил эту ошибку при использовании ODP.net . Я обошел это, используя функцию базы данных ROUND, чтобы ограничить количество десятичных знаков. Надеюсь, это поможет.