首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Informix >

从文本load到informix数据库的

2012-03-04 
从文本load到informix数据库的求助小弟通过文本往库里面load数据,但是文本中可能有某一行有乱码,会导致无

从文本load到informix数据库的求助


小弟通过文本往库里面load数据,但是文本中可能有某一行有乱码,会导致无法装入数据,然后脚本就会跳过不进行装数,直接commit了...

譬如如下的例子:

Database selected.


Started transaction.


823 row(s) deleted.


 846: Number of values in load file is not equal to number of columns.

 847: Error in load file line 1002.
Error in line 2
Near character position 26

Data committed.


Database closed.

在1002行有乱码,但是直接跳出,然后commit了


有没有什么脚本,起这样的功能,
把不能装入数据库的某条数据reject掉,
输出到某指定文本,
然后继续装数,直接到装载完毕整个文本?
请各位大侠帮忙,谢谢

[解决办法]
这个问题有两种方式
1、写C++程序实现吧,程序能捕捉入库时返回的错误代码! 对于报上面错的直接跳过即可
2、判断每行的列数,列数不一致的就不要insert了,这个时候需要一条一条insert,比较慢!
比如用perl或AWK,碰到出现乱码的行,这行的记录数应该跟其他行不一致

热点排行