2013-10-10 2 views
3

У меня есть CSV файл, какбазы данных H2, вставить, выбрав результаты из CSVREAD

1,hello,13 
2,world,14 
3,ciao,26 

Я пытаюсь использовать CSVREAD функцию, чтобы прочитать этот файл в базу данных, как этот

insert into my_table(id, message, code) values (
    select convert("id",bigint), "message", convert("code", bigint) 
    from CSVREAD('myfile.csv', 'id,message,code', null) 
); 

Для по какой-то причине я продолжаю получать SQL error stating that the column count does not match.

Таблица создана с помощью Hibernate/GORM и содержит поля, которые я пытаюсь вставить.

Сам выбор сам по себе работает, или, по крайней мере, он не вызывает ошибок при выполнении в одиночку. Что случилось с моим заявлением?

ответ

8

Вы использовали

insert into my_table(...) values (select ...) 

но вы должны использовать, как описано в SQL railroad diagrams,

insert into my_table(...) select ... 

На самом деле, для Н2, it is a bit faster if you create the table as follows, но я понимаю, что это не всегда возможно:

create table my_table(...) as select ... 
+0

Thanks @Thomas. На этом этапе разработки GORM/Hibernate создает таблицы для меня, где я только запускаю данные из файлов CSV. Когда приложение созревает, можно использовать таблицу create, которая также включает данные. – kaskelotti

Смежные вопросы