我需要运行一个非常简单的SQL查询
SELECT `id`, `{Document id}` FROM `test`.`test` LIMIT 10;
其中{Document id}
是列名。每当我通过MariaDB JDBC运行它时,它都会失败,并显示错误unknown escape sequence
。根据我的理解,{CALL ...}
用于使用JDBC CallableStatement
调用存储过程。
我如何逃脱它?我希望JDBC将它视为文字字符串而没有特殊含义。 \
对我不起作用。
如@a_horse_with_no_name删除的答案中所述,有setEscapeProcessing。但是很多连接器都不支持它(例如MariaDB)。
答案 0 :(得分:1)
我已使用mariadb-java-client-2.2.5确认了此问题。这不是mysql-connector-java-5.1.44的问题所以你可能想要report this issue to MariaDB。
根据@JoopEggen在上面的评论中提出的建议,我通过将sessionVariables=sql_mode=ANSI_QUOTES
添加到连接字符串并使用
ResultSet rs = st.executeQuery("SELECT \"{Document id}\" FROM test.test");