今天,当一个同事配置元数据数据库PostgreSQL的蜂巢,下面的错误信息时运行蜂巢SQL。

复制代码代码如下所示:

致:metaexception(消息:T例外:org.apache.hadoop.hive.metastore.api.metaexception javax.jdo.jdodatastoreexception:执行错误jdoql查询选择this.name作为nucorder0 DBS这哪里(下(这个名字)喜欢nucorder0逃生顺序是:错误:无效转义字符串)

提示:逸出字符串必须为空或一个字符。



错误信息是非常明确的,逃离这里,只为一个字符引用,而不是两。解决的方法很简单,和连接的会话属性standard_conforming_strings JDBC的用户设置为OFF。

复制代码代码如下所示:

改变角色在XX YY设置standard_conforming_strings关闭数据库;



错误的解释

字符串中常见的早期PG被视为转义字符,因此最终是,但这与SQL标准不一致。因此,PG 9.1和后,在普通的字符串的字符不会转义字符,但e'xx x'will被视为转义字符。为了参加新的PG版本的旧代码,有standard_conforming_strings选项。默认是打开的,这意味着字符串是根据SQL标准进行处理的。设置为OFF时,该字符串是根据旧版页处理