Заголовки столбцов Scriptella и CSV, содержащие пробелы

Я пытаюсь переместить данные из CSV-файлов в таблицу базы данных и хочу использовать имена заголовков столбцов в сценарии. Например:

<connection id="csvin" driver="csv" url="/path/to/file.csv" />
<connection id="dbout" driver="h2" url="connection string" />
<query connection-id="csvin">
  <script connection-id="out">
    INSERT INTO mytable VALUES (?column one,?column five,?column eight)
  </script>
</query>

Я получаю ошибку синтаксиса SQL из вышеперечисленного. Если я вместо этого использую инструкцию SQL

INSERT INTO mytable VALUES (?1, ?5, ?8)

Тогда это работает. Но я бы предпочел использовать заголовки столбцов. По логистическим причинам я не могу изменить имена заголовков столбцов, чтобы они не содержали пробелов. Есть ли способ сделать это, используя имена с пробелами?

Я пытался экранировать пробелы, заключать в кавычки имена, используя скобки и используя Unicode нотацию (\u0020), но пока не повезло.

Спасибо!

1 ответ

Решение

К сожалению, специальные символы в именах переменных не могут быть экранированы, но Scriptella предоставляет вспомогательный метод для достижения аналогичного эффекта. Смотрите EtlVariable.getParameter

В вашем случае просто используйте ?{etl.getParameter('column one')}

Другие вопросы по тегам