当目标具有标识列时,AseBulkCopy.WriteToServer失败

2020-09-18 02:32发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我的源有2列(Viz:ForeN...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我的源有2列(Viz:ForeName和SurName),目的地有3列,其中一列是身份列(即Id(smallint identity),Forename和Surname)。

" Id的映射"列为空(即未完成映射)

使用(AseBulkCopy blk =新的AseBulkCopy(connectionString))
  {//将超时设置为默认值30s
        blk.BulkCopyTimeout = 30;
       blk.DestinationTableName ="雇员";
       blk.ColumnMappings.Clear();
      //映射源序号和目标序号
       blk.ColumnMappings.Add(new AseBulkCopyColumnMapping(0,1));
       blk.ColumnMappings.Add(new AseBulkCopyColumnMapping(1,2));
       blk.WriteToServer(dataSource);
       blk.Close();
 } 

AseBulkCopy.WriteToServer(dataSource)引发异常Sybase.Data.AseClient.AseException:批量插入失败。 不为null的列中不允许为null。

3条回答
追夢秋陽
2020-09-18 02:40

嗨,

我记得几年前这个确切的问题。 这是CR 678477,将EnableBulkLoad = 0与Identity列一起使用会导致错误。 在15.7 ESD#5及更高版本中已修复此问题。

您是否要在连接字符串中添加enablebulkload = 1?

我还记得一个身份列损坏的问题导致了同样的问题,身份值已更改,并且ASE无法正确映射更改,如果我没记错的话,这是一些ASE错误。

谢谢,
黎明金

一周热门 更多>