当前位置:   article > 正文

达梦数据库表插入EXCEL文件数据_结果集不可更新,请确认查询列是否出自同一张表,并且包含值唯一的列

结果集不可更新,请确认查询列是否出自同一张表,并且包含值唯一的列
 小背景

        工作过程中会经常需要把一些表清空,然后从excel表格插入数据,之前一直用Oracle数据库的PL/SQL Developer,Oracle的表似乎不需要设置主键,直接在查询语句后面加上for update即可在查询结果界面批量粘贴数据,是比较便捷的方法,相比导入excel等文件来说,只用复制粘贴即可不需要将所需信息保存为文件。

大问题

        但达梦数据库似乎无法做到,按上述做在法达梦数据管理工具中会提示:结果集不可更新,请确认查询列是否出自同一张表,并且包含值唯一的列,如下图:

         实际上也有可操作的方式,提示没有值唯一的列,为解决这个问题,可以引入rowid作为唯一值,将上述脚本改成:

select a.*,rowid from "table_name" for update

        会有如下所示结果:

        可以看到锁已经打开,可以正常修改更新数据了,批量复制粘贴也是可以做到的。但是达梦管理工具反馈呆板,笔者尝试将9000+行数据复制粘贴,直接卡死,达梦似乎是复制的时候就验证数据,对比PL/SQL Developer复制后再手动点击验证,显得有些措不及防。当然这种方法若数据量大,两个数据库均无法短时间内将数据保存好,但对于9000+的数据在PL/SQL Developer中几分钟就可以保存提交,达梦管理器却运行了三小时,仍看上去毫无动静,后笔者直接强制退出终止插入了。

轻方案 

        对于较大的数据量必然是事先保存好的excel等文件,可以用直接导入文件的方法将数据导入数据库中,具体操作可以按一下步骤:

        一、在对象导航-模式-对应用户名-表中找到想要更新的表,右击点击浏览数据

        二、在界面内随意单元格右击,点击导入 

         三、选择文件,若excel文件数据表头和数据库表的表头一样则此处会自动对应好,否则需要手动选择对应的列,点击确定等待导入结束即可。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/474709
推荐阅读
相关标签
  

闽ICP备14008679号