Как создать базу данных h2 из некоторых полей файла CSV

Я хотел бы создать новую встроенную базу данных h2 из CSV-файл. Вот фрагмент CSV-файла

Country, City, AccentCity, Region, Population, Latitude, Longitude

ad, aixovall, Aixovall, 06,, 42.4666667,1.4833333

ad, andorra, Andorra, 07, , 42.5,1.5166667

ad, andorra la vella, Andorra la Vella, 07,20430,42.5,1.5166667

ad, andorra-vieille, Andorra-Vieille, 07,, 42.5,1.5166667

ad, andorre, Andorre, 07,, 42.5,1.5166667

Я не хочу получать все поля файла csv. На самом деле, мне нужны все, кроме полей Город и Регион .

И, кроме того, я хочу вставить содержимое файла csv в базу данных ТОЛЬКО ЕСЛИ содержимое POPULATION не пусто.

Таким образом, в приведенном выше примере csv мы должны вставить только 3-ю строку в таблицу h2 WORLDCITIES, потому что указано ее поле «популяция».

Вот фрагмент кода, который я написал. Но, как видите, этого еще недостаточно:

conn = DriverManager.getConnection(connectionURL, connectionProps);
Statement stmt = conn.createStatement();
stmt.execute("CREATE TABLE WORLDCITIES"
        + " AS SELECT COUNTRY, ACCENTCITY, POPULATION, LATITUDE, LONGITUDE"
        + " FROM CSVREAD('snippet.csv'));

И если я правильно понимаю, CSVREAD создает поля, используя тип VARCHAR, но мне нужны такие вещи, как это:

COUNTRY VARCHAR (3), ACCENTCITY VARCHAR (40), ПОПУЛЯЦИЯ НАСЕЛЕНИЯ, ПОПЛАВКА ШИРОТЫ, ПОПЛАВКА ДОЛГОТЫ

Заранее благодарим за помощь.

8
задан paissad 1 March 2011 в 20:27
поделиться