2

H2 と Java を使用してタブ区切りファイルからクエリを実行しようとしています。ただし、問題がない場合select *、列の1つに列名にスペースが含まれています。その列だけをクエリしようとすると、例外が発生します。

Caused by: org.h2.jdbc.JdbcSQLException: Column "EXAMPLE" not found; SQL statement:

列名 (ColumnName の例) の両方の単語を取得していないように見えますが、最初の単語のみを取得しています。

これは私が持っているものです:

System.out.println( simpleJdbcTemplate.queryForList( "SELECT Example ColumnName FROM CSVREAD('" + fileName
                + "', null,'UTF-8', chr(9)) where send = 1;", new Object[] {} ) );

これを行うための特別な構文があると思いますが、見つけられないようです。列名を角かっこ、一重引用符、二重引用符、目盛りで囲んでみましたが、すべて役に立ちませんでした。

名前にスペースを含む列を使用して H2 をクエリする方法はありますか?

4

2 に答える 2

4

documentationによると、二重引用符でうまくいくはずです。Java で正しくエスケープすることを忘れないでください。つまり、カラム名を に格納するだけですString

String exampleColumnName = "\"Example ColumnName\"";

また、ドキュメントから、大文字と小文字が区別されることに注意してください。

引用符で囲まれた名前は大文字と小文字が区別されます

于 2013-04-29T19:21:48.757 に答える