Postgresql 如果参数名大小写混合且包含空格,如何引用名为parameter的Camel SQL组件?

Postgresql 如果参数名大小写混合且包含空格,如何引用名为parameter的Camel SQL组件?,postgresql,apache-camel,Postgresql,Apache Camel,我正在使用Camel SQL组件将CSV文件加载到Postgresql数据库中。 原始CSV文件头名称列是大小写混合的,带有空格,例如成本价 SQL组件引用属性文件中的SQL insert语句, 例如 插入上载数据年、月、成本值:年、月、成本价 我得到这个错误: 原因:[org.springframework.jdbc.BadSqlGrammarException-PreparedStatementCallback;错误的SQL语法[];嵌套异常为org.postgresql.util.PSQL

我正在使用Camel SQL组件将CSV文件加载到Postgresql数据库中。 原始CSV文件头名称列是大小写混合的,带有空格,例如成本价

SQL组件引用属性文件中的SQL insert语句, 例如 插入上载数据年、月、成本值:年、月、成本价

我得到这个错误: 原因:[org.springframework.jdbc.BadSqlGrammarException-PreparedStatementCallback;错误的SQL语法[];嵌套异常为org.postgresql.util.PSQLException:错误:语法错误位于或附近:位置处

-该位置指的是:成本价之前

如果我将参数名称更改为cost_price并修改CSV文件,则文件将正确上载,不会出错

我已尝试在insert语句中用“\和{}”包围参数


是否可以使用转义符或其他方法将命名参数中的空格与大小写混合使用,或者我是否需要干预并修改CSV标头?

SQL组件不支持这一点,事实上,在标头名称中使用空格是一种非常糟糕的设计。因此,在读取CSV文件后,可以在调用SQL组件之前更改标头名称nt.

另一个很好的例子,为什么你不应该首先使用带引号的标识符?明白了。我无法控制原始文件的创建,因此在上传文件时我必须对其进行修改。谢谢。