H2数据库 - CSVREAD - 跳过将csv文件的标题行加载到db中

时间:2012-01-06 17:15:43

标签: csv h2

我在我的java应用程序中使用H2 DB。我想将.csv文件加载到数据库。此文件包含列标题作为文件的第一行。因此,在通过CSVREAD命令将文件加载到DB中时,H2也尝试解析第一行,从而失败。

那么如何跳过加载第一行。在我用于将文件加载到DB的查询下面:

"CREATE TABLE TEST (CIRCLE VARCHAR_IGNORECASE(50), MSISDN VARCHAR_IGNORECASE(50), PORT_IN_DATE TIMESTAMP, OPERATOR VARCHAR_IGNORECASE(255), PRODUCT_TYPE VARCHAR_IGNORECASE(255), PORT_ID VARCHAR_IGNORECASE(255)) AS SELECT * FROM CSVREAD('src/test/resources/test.csv', "

1 个答案:

答案 0 :(得分:13)

CSVREAD函数支持包含和不包含列标题的文件。如果文件包含列标题,则不要在函数中提供列列表,例如:

SELECT * FROM CSVREAD('test.csv');
SELECT * FROM CSVREAD('data/test.tsv', null, 'rowSeparator=' || CHAR(9));

如果文件不包含列标题,则在函数调用中提供列列表,例如:

SELECT * FROM CSVREAD('test2.csv', 'ID|NAME', 'charset=UTF-8 fieldSeparator=|');