D365 X++ 查询报错:Arithmetic overflow error converting expression to data type bigint

在D365 X++中执行以下查询语句时,可能会遇到错误:

select firstonly AmountCurDebit, OffsetLedgerDimension from ledgerJournalTrans
order by createdDateTime desc
where ledgerJournalTrans.Txt == '営業外売上ヘッダID:' + mtxCustOutsideSalesTable.MtxOutsideSalesId + ' ' + salesParm.MtxCustLineDescription;

报错信息:

session 365302 (Admin)
SELECT TOP 1 T1.AMOUNTCURDEBIT,T1.OFFSETLEDGERDIMENSION,T1.RECID FROM LEDGERJOURNALTRANS T1 WHERE (((PARTITION=5637144576) AND (DATAAREAID=N'mtx')) AND (TXT=(?+?))) ORDER BY T1.CREATEDDATETIME DESC
[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Arithmetic overflow error converting expression to data type bigint.
Object Server Azure:
仕訳帳明細行 のレコードを選択できません (LedgerJournalTrans)。 SQL データベースによってエラーが出されました。内容:这个报错是由于在执行查询时,数据类型转换出现了溢出错误。具体来说,这可能是因为在执行查询时,尝试将一个表达式转换为bigint类型时出现了溢出错误。

原因分析

该错误通常是由于在执行查询时,数据类型转换出现了溢出错误。具体来说,这可能是因为在执行查询时,尝试将一个表达式转换为bigint类型时出现了溢出错误。

解决方法

  1. 检查表达式中的数值类型:确保表达式中的数值类型与目标数据类型匹配。例如,如果表达式中包含了较大的数值,可以考虑将其转换为更大的数据类型,如decimal。
  2. 检查数据类型转换:如果表达式中包含了多个数值类型的操作,例如加法或乘法,确保在进行操作之前进行适当的数据类型转换。例如,可以使用cast函数将数值转换为合适的数据类型。
  3. 检查数据的有效范围:检查表达式中使用的数值是否在数据类型的有效范围内。如果数值超出了数据类型的范围,可以考虑使用更大的数据类型来存储这些数值。
  4. 检查数据源的值:如果查询中使用了变量或参数,确保这些值的范围在合理的范围内,并且不会导致溢出错误。

如果以上解决方案都无法解决问题,建议联系数据库管理员或开发人员进一步调查和解决该问题。

D365 X++ 查询报错:Arithmetic overflow error converting expression to data type bigint

原文地址: https://www.cveoy.top/t/topic/ffsw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录