今天有同事在配置PostgreSQL为Hive元数据库后,运行Hive SQL时遇到以下报错信息:

复制代码 代码如下:
Caused by: MetaException(message:Got exception: org.apache.hadoop.hive.metastore.api.MetaException javax.jdo.JDODataStoreException: Error executing JDOQL query “SELECT “THIS”.”NAME” AS NUCORDER0 FROM “DBS” “THIS” WHERE (LOWER(“THIS”.”NAME”) LIKE "codetitle">复制代码 代码如下:
ALTER ROLE xx IN DATABASE yy SET standard_conforming_strings TO off;

错误原因说明

早期PG普通字符串中的'\'是作为转义字符对待的,所以'\\'最终会认为是'\'。但是这是不符合SQL标准的,所以在PG 9.1及以后,普通字符串中的\不会被任务是转义字符,而E'xx\x'中的\才会被当作是转义字符。为了使以前的代码可以在新的PG版本中运行,便有了standard_conforming_strings这个选项,这个选项默认是on,表示按照SQL标准处理字符串,当设置为off时,按照PG的旧版本处理字符串。

标签:
PostgreSQL,invalid,escape,string

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无争山庄资源网 Copyright www.whwtcm.com