База данных H2 - CSVREAD - пропустить загрузку строки заголовка файла csv в базу данных - PullRequest
3 голосов
/ 06 января 2012

Я использую H2 DB в своем Java-приложении. Я хочу загрузить файл .csv в БД. Этот файл содержит заголовки столбцов в качестве первой строки файла. Таким образом, при загрузке файла в БД с помощью команды CSVREAD H2 пытается также проанализировать первую строку и, таким образом, не удается.

Так как пропустить загрузку первой строки. Ниже запроса, который я использую для загрузки файла в БД:

"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 Ответ

14 голосов
/ 07 января 2012

Функция 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=|');
...