me gustaría crear una nueva base de datos h2 incrustada desde un archivo CSV. Aquí es el fragmento del archivo csvCómo crear una base de datos h2 desde algunos campos de un archivo CSV
País, Ciudad, AccentCity, Región, Población, Latitud, Longitud
anuncio, Aixovall, Aixovall, 06,, 42.4666667,1.4833333
anuncio, Andorra, Andorra, 07,, 42.5,1.5166667
anuncio, Andorra la Vella, Andorra la Vella, 07,20430,42.5,1.5166667
anuncio, Andorra-vieille, Andorra-Vieille, 07,, 42.5, 1.5166667
anuncio, Andorra, Andorra, 07,, 42.5,1.5166667
no quiero para recuperar todos los campos del archivo CSV. En realidad, los quiero a todos, excepto los campos Ciudad y Región.
Y además, quiero insertar el contenido del archivo csv en la base de datos SÓLO SI el contenido de POBLACIÓN no está vacío.
Por lo tanto, en el ejemplo csv anterior, solo debemos insertar la tercera fila en la tabla h2 WORLDCITIES porque se indica su campo 'población'.
Aquí hay un fragmento de código que escribí. Pero, como se puede ver, no es suficiente todavía:
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'));
Y si he entendido bien, CSVREAD crear los campos utilizando el tipo VARCHAR, pero quiero las cosas como esta:
PAÍS VARCHAR (3), ACCENTCITY VARCHAR (40), POPLOATION FLOAT, LATITUDE FLOAT, LONGITUDE FLOAT
Gracias de antemano por su ayuda.
¡Muchas gracias, finalmente utilicé su solución! – paissad