我有一个我想用CsvJdbc驱动程序导入的 csv 文件。我无法更改 csv 文件,因为它是从外部程序导出的。
不幸的是,这些列在他们的名字周围有 [],比如[organisation_id]
当我想查询列时,出现语法错误[
,因为]
不支持字符。我怎样才能逃脱他们?
注意我已经尝试过\\[organisation_id]\\
,,,,\[organisation_id\]
//[organisation_id//]
/[organisation_id/]
这个问题由 CsvJdbc Feature Request #55, "Allow double-quoted column names, column aliases,table names" ( 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)使用的方法。
在您的 SQL 中使用它们之前,您必须去掉 []。许多(我所知道的)SQL 系统不支持某些字符。
因此,您可能不会命名列[name]
。没有办法逃脱。您必须删除它并改用它name
。
(请注意,这仅适用于表和列名称。在列的内容中,您必须在文本周围加上引号,例如"value with [] is ok"
)
经过一番阅读,我可以说有时它也允许使用“”来转义列名,因此"[organisation_id]"
有时可能会被允许。