我正在尝试将数据从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),但到目前为止还没有成功。
谢谢!
发布于 2014-07-01 01:02:30
不幸的是,变量名中的特殊符号不能转义,但是Scriptella提供了一种实用方法来实现类似的效果。请参阅EtlVariable.getParameter
在您的情况下,只需使用?{etl.getParameter('column one')}
https://stackoverflow.com/questions/24498477
复制相似问题