Oracle bulkcopy no support identity 返回

SqlSugar 沟通中
19 295
该叫什么 jzh 发布于2周前
悬赏:0 飞吻

await _db.Fastest<DataTable>().AS(insertTable).PageSize(100000).BulkMergeAsync(dt, primaryKeys.ToArray(), hasIdentityColumn);  报错:Oracle bulkcopy no support identity


热忱回答19

  • oracle bulkcopy不支持自增列

    0 回复
  • jzh jzh VIP0
    2周前

    那oracle  大数据批量更新插入怎么写啊

    0 回复
  • 就上面的写法。只是表不能自增

    0 回复
  • jzh jzh VIP0
    2周前

    我就是上面那么写的啊,但是报错了啊。

    0 回复
  • jzh jzh VIP0
    2周前

    我就是把sql server 里面的数据查询出来成datatable 然后把整个datatable插入到oracle新建的表中,然后就报这个错误,才来请教的。hasIdentityColumn是false 


    0 回复
  • @jzh: 检查一下表,有没有用序列 ,自增列,或者 触发器这种自动赋值。

    主键只能手动赋值那种

    0 回复
  • 实体的isidentity=true也要去掉

    0 回复
  • jzh jzh VIP0
    2周前

    你是指插入的表吗


    0 回复
  • jzh jzh VIP0
    2周前

    查询的sqlserver 确实是自增的,但是插入的不是,我还要去改查询的表吗,那是别人的我不能动啊。下面这个是插入的表id,image.png

    0 回复
  • jzh jzh VIP0
    2周前

    image.pngimage.png

    0 回复
  • jzh jzh VIP0
    2周前

    插入表的列IsIdentity这是false啊

    0 回复
  • jzh jzh VIP0
    2周前

     dt.TableName = insertTable; //设置表名

     var primaryKeys = primaryKeyField.Split(',').ToList();

     var x = _db.Storageable(dt).WhereColumns(primaryKeys).ToStorage();

     var inserAble = x.AsInsertable;

     await inserAble.ExecuteCommandAsync();

     await x.AsUpdateable.ExecuteCommandAsync();  这样写都可以,就是慢,所以我想换Fastest写法,怎么样都报错


    0 回复
  • jzh jzh VIP0
    2周前

     await _db.Fastest<DataTable>().AS(insertTable).BulkUpdateAsync(dt, primaryKeys.ToArray());  我用这个试了下,是可以的,是不是这个 :await _db.Fastest<DataTable>().AS(insertTable).BulkMergeAsync(dt, primaryKeys.ToArray(), hasIdentityColumn); 有问题啊,大佬

    0 回复
  • @jzh:QQ私聊我

    0 回复
  • jzh jzh VIP0
    2周前

    加你了,大佬

    0 回复
  • 8}DG%YPZAN}9[3({EBTTWMK.png

    第三个参数不要写错

    0 回复
  • jzh jzh VIP0
    2周前

    已解决,谢谢大佬的耐心指教

    0 回复
  • 咋解决的

    0 回复
  • jzh jzh VIP0
    4天前

    自己的问题,我的aop 给实体类加了自增键标识列

    0 回复