SQL 使用具有从数字序列自动生成的字段的 DIXF 实体将数据类型 nvarchar 转换为 bigint 时出错
SQL error converting data type nvarchar to bigint using DIXF entity with auto generated field from number sequence
我正在使用 DIXF 实体作为期初余额将分类帐日志的数据导入 Dynamics AX。为了生成凭单和日记帐编号,我使用了源到暂存映射中的 Auto-generated
复选框。有时在导入暂存数据时,这会导致以下错误信息:
Cannot execute the required database operation. The SQL database has issued an error.
SQL error description: [Microsoft][SQL Server Native Client 10.0][SQL Server]Error converting data type nvarchar to bigint.
SQL statement: UPDATE DMFLEDGERJOURNALENTITY SET JOURNALNUM = [dbo].FN_FMT_NUMBERSEQUENCE(N'006-######',JOURNALNUM,159,0) WHERE DEFINITIONGROUP = N'AnlagenAbschreibungAX3.0_006' AND EXECUTIONID = N'AnlagenAbschreibungAX3.0_006_006-1'
Issue exist in generate staging data
'82' 'Anfangssaldo' record(s) inserted in staging
错误是由class DMFGenerateSSISPackage
中的方法generateAutoNumbers
引起的,但是如果我在那里设置断点并尝试调试问题,则不会发生错误并且在它之后不会再发生。我一直没能想出一个可靠的方法来重现这个问题,但它通常在我创建一个新的处理组后出现。
我想知道为什么这个 SQL 语句有时无法转换数据类型以及我可以做些什么来防止错误。
更多的是我今天偶然发现了答案。该问题仅发生在其状态列表中具有空闲号码且这些号码不足以用于暂存记录的连续号码序列。我想为暂存记录提供的数字序列号必须是连续的。这也解释了为什么问题不能轻易复制,因为在第一次导入暂存数据后,状态列表中的免费号码已被使用,并且下一次导入成功,因为它只使用新号码。
所以为了防止这个问题,如果他们的状态列表中有免费号码,请检查涉及的连续号码序列。
我正在使用 DIXF 实体作为期初余额将分类帐日志的数据导入 Dynamics AX。为了生成凭单和日记帐编号,我使用了源到暂存映射中的 Auto-generated
复选框。有时在导入暂存数据时,这会导致以下错误信息:
Cannot execute the required database operation. The SQL database has issued an error.
SQL error description: [Microsoft][SQL Server Native Client 10.0][SQL Server]Error converting data type nvarchar to bigint.
SQL statement: UPDATE DMFLEDGERJOURNALENTITY SET JOURNALNUM = [dbo].FN_FMT_NUMBERSEQUENCE(N'006-######',JOURNALNUM,159,0) WHERE DEFINITIONGROUP = N'AnlagenAbschreibungAX3.0_006' AND EXECUTIONID = N'AnlagenAbschreibungAX3.0_006_006-1'
Issue exist in generate staging data
'82' 'Anfangssaldo' record(s) inserted in staging
错误是由class DMFGenerateSSISPackage
中的方法generateAutoNumbers
引起的,但是如果我在那里设置断点并尝试调试问题,则不会发生错误并且在它之后不会再发生。我一直没能想出一个可靠的方法来重现这个问题,但它通常在我创建一个新的处理组后出现。
我想知道为什么这个 SQL 语句有时无法转换数据类型以及我可以做些什么来防止错误。
更多的是我今天偶然发现了答案。该问题仅发生在其状态列表中具有空闲号码且这些号码不足以用于暂存记录的连续号码序列。我想为暂存记录提供的数字序列号必须是连续的。这也解释了为什么问题不能轻易复制,因为在第一次导入暂存数据后,状态列表中的免费号码已被使用,并且下一次导入成功,因为它只使用新号码。
所以为了防止这个问题,如果他们的状态列表中有免费号码,请检查涉及的连续号码序列。