Csv Informix从头文件加载

Csv Informix从头文件加载,csv,informix,Csv,Informix,我正在使用Informix LOAD FROM命令将数据从CSV文件批量插入到DB表中,如: LOAD FROM "file.csv" DELIMITER ";" INSERT INTO table_name(col1, col2, col3) 问题是,每个CSV文件的第一行都包含列标题。有没有办法告诉Informix应该忽略第一行;没有办法告诉标准Informix跳过标题行。还要注意的是,它不会从CSV格式的字段周围删除引号,也不会以CSV格式官方期望的方式处理事情(不过,由于您使用的是分号

我正在使用Informix LOAD FROM命令将数据从CSV文件批量插入到DB表中,如:

LOAD FROM "file.csv" DELIMITER ";" INSERT INTO table_name(col1, col2, col3)

问题是,每个CSV文件的第一行都包含列标题。有没有办法告诉Informix应该忽略第一行;没有办法告诉标准Informix跳过标题行。还要注意的是,它不会从CSV格式的字段周围删除引号,也不会以CSV格式官方期望的方式处理事情(不过,由于您使用的是分号分隔的值而不是逗号分隔的值,因此很难知道遵循了哪些规则-也要小心反斜杠的处理)

您可能可以使用Informix DB Load实用程序()代替;这取决于您的数据是否只是在使用
代替Informix的默认分隔符
|
,或者您是否有更多CSV的语义,例如需要删除的字段周围的引号。如果您想获得异国情调,Informix可以本地处理,也可以经过培训来处理

P>可选的,您可以考虑使用我的*程序(它被称为代码> SqLCMD< /代码>比微软的JNNY最近的名字长很多),它允许您指定:

LOAD FROM "file.csv" DELIMITER ";" SKIP 1 INSERT INTO table_name(col1, col2, col3);
SQLCMD还有一个选项格式CSV(除其他格式外),可能相关,也可能不相关。它处理诸如从完整CSV标准支持的字段周围去掉引号之类的事情

您需要安装Informix ClientSDK和C编译器(以及C开发系统的其余部分)来构建SQLCMD

*因为SQLCMD是我写的程序,所以任何使用它的建议都是固有的偏见;你被警告了



你也可以考虑一个“外部表”(),但是我不确定它是否比Load语句更好,或者它支持的格式,或者跳过第一行数据的能力。

< P>当我从加载到InformixI中加载CSV文件时,通常会加载到一个临时表中,这是我随后使用的所有字符列。您只需删除标题行。基本上,您只需将整个文件放入一个更易于使用的临时表中

谢谢你的澄清!我正在使用的文件并不是真正遵循标准的CSV格式,但是因为它们只包含数字和一些日期,所以我不担心格式问题。无论如何,我一定要看看SQLCMD,谢谢你的提示!