出於測試目的,我想使用SQL腳本以及CSV文件創建和填充一些表格。加載位於H2數據庫的類路徑中的CSV文件
所以我創建了一個SQL腳本,像這樣的:
CREATE TABLE T_FOO (
...
) as select * from CSVREAD('classpath:/foo.csv');
的foo.csv
文件存在,並且位於src/test/resources
。
當這個腳本是基於Eclipse(其中src/test/resources
被定義爲源目錄,因此被包含在類路徑)運行時,我收到以下錯誤:
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)作爲I wanted to use the classpath:
protocol to load my file。
嗯,聽起來像一個bug然後...我會檢查。 – 2011-03-29 15:40:56
@Thomas Mueller謝謝:) – romaintaz 2011-03-29 16:10:00