我有一个我要用CsvJdbc驱动程序导入的csv文件。我无法更改csv文件,因为它是从extern程序导出的。
不幸的是,列的名称周围有[],例如[organisation_id]
当我想查询列时,语法错误为[
,不支持]
个字符。我怎么能逃脱他们?
N.B。我已经尝试\\[organisation_id]\\
,\[organisation_id\]
,//[organisation_id//]
,/[organisation_id/]
答案 0 :(得分:2)
此问题通过CsvJdbc功能请求#55,“允许双引号列名,列别名,表名”(http://sourceforge.net/p/csvjdbc/feature-requests/55/)解决,它包含在最新的CsvJdbc 1.0-17版中。
包含特殊字符的列名现在可以在SQL语句中与它们周围的双引号一起使用。例如,
SELECT "[organisation_id]", "foo bar", "< 5 seconds" as HELLO FROM sample
这是其他数据库使用的方法,例如PostgreSQL。
答案 1 :(得分:1)
在SQL中使用它们之前,必须删除[]。许多(我所知道的)SQL系统都不支持某些字符。
因此,您不能将列命名为[name]
。没有逃避的可能性。您必须将其删除并改为使用name
。
(请注意,这仅适用于表格和列名称。在列的内容中,您必须在"value with [] is ok"
)
经过一些阅读后,我可以说有时允许使用“”来转义列名,因此有时可能允许使用"[organisation_id]"
。