0

我有一个我想用CsvJdbc驱动程序导入的 csv 文件。我无法更改 csv 文件,因为它是从外部程序导出的。

不幸的是,这些列在他们的名字周围有 [],比如[organisation_id]

当我想查询列时,出现语法错误[,因为]不支持字符。我怎样才能逃脱他们?

注意我已经尝试过\\[organisation_id]\\,,,,\[organisation_id\]//[organisation_id//]/[organisation_id/]

4

2 回答 2

2

这个问题由 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)使用的方法。

于 2013-10-21T19:26:52.443 回答
1

在您的 SQL 中使用它们之前,您必须去掉 []。许多(我所知道的)SQL 系统不支持某些字符。

因此,您可能不会命名列[name]。没有办法逃脱。您必须删除它并改用它name

(请注意,这仅适用于表和列名称。在列的内容中,您必须在文本周围加上引号,例如"value with [] is ok"

经过一番阅读,我可以说有时它也允许使用“”来转义列名,因此"[organisation_id]"有时可能会被允许。

于 2013-06-20T09:32:17.883 回答