Para propósitos de pruebas, quiero crear y llenar algunas tablas usando scripts SQL así como también archivos CSV.Cargar archivo CSV ubicado en el classpath para la base de datos H2
así que creé una secuencia de comandos SQL como la siguiente:
CREATE TABLE T_FOO (
...
) as select * from CSVREAD('classpath:/foo.csv');
existe el archivo foo.csv
, y se encuentra en src/test/resources
.
Cuando este script se ejecuta en Eclipse (donde src/test/resources
se define como un directorio de origen y por lo tanto está incluido en la ruta de clase), me sale el siguiente error:
Caused by: java.io.FileNotFoundException: resource /foo.csv
at org.h2.store.fs.FileSystemDisk.openFileInputStream(FileSystemDisk.java:388)
at org.h2.util.IOUtils.openFileInputStream(IOUtils.java:708)
at org.h2.tools.Csv.initRead(Csv.java:317)
at org.h2.tools.Csv.readResultSet(Csv.java:217)
at org.h2.tools.Csv.read(Csv.java:193)
... 49 more
¿Qué hice mal? ¿Cómo usar correctamente el protocolo classpath:
para cargar un archivo CSV?
Si pongo la ruta completa del archivo (como ... CSVREAD('C:\my-project\src\test\resources\foo.csv');
), entonces funciona. Pero no es por eso que quiero hacerlo :)
Tenga en cuenta que utilizo la última versión de H2 (1.3.153) como I wanted to use the classpath:
protocol to load my file.
Hm, suena como un error, entonces ... Lo comprobaré. –
@Thomas Mueller Gracias :) – romaintaz