页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 5 当前 »

(本文档仅供参考)

现象

带参数的电子表格进行批量导入数据时,重复两次导入后报主键或唯一约束冲突:ORA-00001:违反唯一约束条件,见下图

原因:

 在报表设置合理的情况下,此报错是因为第一次批量导入数据时,数据库没有对应的数据,所以执行insert操作,而第二次进行批量导入时,数据库已经存在对应数据,但是电子表格是带参数的,此时根据参数筛选出的报表数据并未包含excel表导入的数据,见下图:

 

  此时进行批量导入excel数据后出现报错。

  对于带参数的电子表格,产品是根据参数获取的数据集来判断是执行insert操作还是update操作,若根据参数获取的数据集在需要导入的excel表中不存在,则执行insert操作,反之,则执行update操作,对于报错截图,是因为数据库中已经存在数据,而前端根据参数获取的结果集并不包含excel表数据,所以导致报错,可以通过切换参数,让参数获取的结果集包含excel表的数据,从而实现批量导入数据正常,见下图:

 

  那么如何做到不切换参数都可以实现第一次导入数据执行insert操作,第二次导入数据执行update操作?

解决方案:

         可以采用电子表格-回写规则中的强制先执行更新再执行插入解决,见下图

         

         关于强制先执行更新再执行插入的说明见此wiki文档:电子表格-回写规则 


  • 无标签