В целях тестирования я хочу создать и заполнить некоторые таблицы с использованием сценариев SQL, а также файлов CSV.
Поэтому я создал такой сценарий SQL:
CREATE TABLE T_FOO (
...
) as select * from CSVREAD('classpath:/foo.csv');
Файл foo.csv
существует и находится в src/test/resources
.
Когда этот скрипт запускается в Eclipse (где src/test/resources
определен как исходный каталог и, следовательно, включен в classpath), я получаюследующая ошибка:
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
Что я сделал не так?Как правильно использовать протокол classpath:
для загрузки файла CSV?
Если указать полный путь к файлу (например, ... CSVREAD('C:\my-project\src\test\resources\foo.csv');
), тогда он будет работать.Но я не хочу этого делать:)
Обратите внимание, что я использую последнюю версию H2 ( 1.3.153 ), так как Я хотел использовать протокол classpath:
длязагрузить мой файл .