выберите имя столбца из H2 со столбцами, содержащими пробелы
Я пытаюсь выполнить запрос из файла с разделителями табуляции с помощью H2 и java. Когда I select *
нет никаких проблем, однако, один из столбцов имеет пробел в имени столбца. Когда я пытаюсь запросить только этот столбец, я получаю исключение:
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, используя столбцы, которые имеют пробелы в имени?
2 ответа:
Согласно документации , двойные кавычки должны сделать трюк. Не забудьте правильно экранировать их в Java, то есть просто сохранить имя столбца в
String
, ИспользуйтеString exampleColumnName = "\"Example ColumnName\"";
Кроме того, обратите внимание, что он чувствителен к регистру, из документации:
Имена в кавычках чувствительны к регистру