2016-09-05 3 views
0

既存のH2データベースに余分なデータをインポートしようとしています。余分なデータは、.CSVファイルであると私はH2 tutorial documentationから簡単な例のSQL文を使用しています:H2から外部CSVを読み取っているときに "IOException reading test.csv"エラーが意味するのは何ですか?

Error: IO Exception: "IOException reading test.csv"; SQL statement: 
SELECT * FROM CSVREAD('test.csv') [90028-176] 
SQLState: 90028 
ErrorCode: 90028 

私が使用しています。これまでのところ

SELECT * FROM CSVREAD('test.csv'); 

は、私は次の例外を取得することができますWindows 7のSQuirreLクライアントは、ローカルのH2データベースを管理しています。これまでのところ、すべてうまくいきました。 test.csvは、データベースファイルと同じディレクトリにあります。

答えて

1

test.csvファイルの問題のようです。これはLinuxでですか?次に、実行中のプロセスの大文字と小文字を区別するファイル名とアクセス許可を確認します。

コードからファイルFileInputStreamを読むことができますか?これはリモートのH2データベースですか?

いずれにしても、ファイルにアクセスするのはH2サーバーです。おそらくファイルはH2プロセスのCWDにはありません。 /my/folder/test.csvやc:¥my¥folder¥test.csvのようなH2サーバーの絶対ファイル名を指定してください。

+0

Windows 7; SQuirreLクライアントからの読み取り。ローカルDB。私は質問に情報を追加します。ありがとうございました。 – manuelvigarcia

+0

フルパスを指定すると、問題が解決します。ありがとう。 – manuelvigarcia

+0

さらに、私のcsvは別のセパレータ(;)を使用していましたので、クエリ文にいくつかの追加パラメータが必要でした: 'SELECT * FROM CSVREAD( 'W:\ Database \ test.csv'、null、 'fieldSeparator = ); ' – manuelvigarcia

関連する問題