informix数据库中批量导入部分表的数据到另外一个相同的数据库中

发布时间:2017-1-23 16:42:06 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"informix数据库中批量导入部分表的数据到另外一个相同的数据库中",主要涉及到informix数据库中批量导入部分表的数据到另外一个相同的数据库中方面的内容,对于informix数据库中批量导入部分表的数据到另外一个相同的数据库中感兴趣的同学可以参考一下。

一般在开发的时候,都有多个相同的数据库(比如测试环境可能有好几个(比如有开发人员使用的库,测试人员使用的数据库,还有正式环境的数据库等),但是使用的数据库是一样的,)。 现在有这样一个需求:在某个系统中,需要把该系统中的某个模块独立出来,成为一个单独的系统,但是数据还是用的老系统的数据。在新系统的开发的时候,避免不了对老系统的表结构作为更改,由于新系统还在开发中,用户使用的还是老系统,所以在新系统上线的时候,就涉及到导入数据的问题。 数据库是informix的,当时提取了老系统中需要往新系统到的数据文件,由于没有找到好的方法,所以使用的是一个个导入的。 load from /data/unload/informix.attachment.unl insert into attachment 其中attachment是表结构,attachment.unl 是informix数据库导出的数据文件(也就是表中的数据) 由于数据是从老系统的某模块导出的,而新开发的模块对表做了相应的修改, 导致有部分表的旧数据跟新表的表结构不对应,会出现错误,具体有如下一些表: 1.informix.tbl_test_certificateword 2.informix.tbl_test_giftnew 3.informix.tbl_test_group 4.informix.tbl_test_ingroup 5.informix.tbl_test_out_coursename 6.informix.tbl_test_outapplyto 7.informix.tbl_test_outgroupnum 8.informix.tbl_test_visagroup 9.informix.tbl_test_youqu 解决办法: 1.首先把现在数据库中的表的创建语句复制出来,作为备份 ,粘贴在winsql中 2.rename table tbl_test_youquto tbl_test_youqu2 使用如上语句把以前的表名称修改为另一个名字 3.对比以前对表做的操作,创建出符合原系统中新模块的表结构 4.然后使用load from /data/unload/informix.attachment.unl insert into attachment 导入数据(linux路径下区分大小写) 5.然后参考第一步中的表结构,修改现在新建的表结构(基本都是添加字段) 批量添加字段sql如下: alter table informix.tbl_test_certificateword add    cert_birthdate       VARCHAR(20), add    cert_certificatelevel VARCHAR(50), add    cert_takeplace       VARCHAR(50), add    cert_belongcompany   VARCHAR(50), add    cert_certificatetype VARCHAR(20) 方法2:(目前还没有测试) 在CSDN上,请教过比较熟练的朋友,说可以使用: 一般是将这100个load放到sql脚本里,然后直接执行:dbaccess 数据库名 sql脚本 英文分号分隔,最后一句后面也要有分号。 我把您说的意思这样理解:就是把100个 load from /data/unload/buss_type.unl insert into buss_type  这种语句放在一个后缀名是.sql 的文件(比如test.sql)里面,然后使用 dbaccess 数据库名 sql脚本? ps:如果是我理解的这样的话,100个 load from /data/unload/buss_type.unl insert into buss_type  英文分号分隔,最后一句后面也要有分号。 ) 参考:http://blog.csdn.net/oh_maxy/article/details/10507355#comments

上一篇:pat 1007
下一篇:基于ARM嵌入式工控机主板的人机界面组态软件开发方案

相关文章

相关评论