点击此处---> 群内免费提供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。
从DBA角度来看,这对ASE实用程序bcp更加熟悉-
bcp-输入有两个选项,可在加载数据时处理标识列。
-E从输入文件中获取数据。 因此,身份列必须包含在数据中
-g <身份起始值>-数据中未包含"身份"列
在C#代码中,您是否有任何设置可以模拟上面的第二个选项,并将其初始值设置为1或适合您的要求。
HTH
Avinash
SAP Sybase Mainframe Connect 不是此问题的正确标记。
正确的标记应为 SAP Adaptive Server Enterprise 。
这将使正确的受众了解您的问题
谢谢 p>
嗨,
我记得几年前这个确切的问题。 这是CR 678477,将EnableBulkLoad = 0与Identity列一起使用会导致错误。 在15.7 ESD#5及更高版本中已修复此问题。
您是否要在连接字符串中添加enablebulkload = 1?
我还记得一个身份列损坏的问题导致了同样的问题,身份值已更改,并且ASE无法正确映射更改,如果我没记错的话,这是一些ASE错误。
谢谢,
黎明金
一周热门 更多>