Заголовки столбцов 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')}