PostgreSQLERROR:invalidescapestring解决办法
解决办法
2023-06-13 09:15:37 时间
今天有同事在配置PostgreSQL为Hive元数据库后,运行HiveSQL时遇到以下报错信息:
Causedby:MetaException(message:Gotexception:org.apache.hadoop.hive.metastore.api.MetaExceptionjavax.jdo.JDODataStoreException:ErrorexecutingJDOQLquery“SELECT“THIS”.”NAME”ASNUCORDER0FROM“DBS”“THIS”WHERE(LOWER(“THIS”.”NAME”)LIKE?ESCAPE‘\\")ORDERBYNUCORDER0”:ERROR:invalidescapestring
Hint:Escapestringmustbeemptyoronecharacter..
错误信息很清楚,ESCAPE‘\\"这里,引号内只能为一个字符,而不能是两个\。解决的办法很简单,将该JDBC用户的连接session属性standard_conforming_strings设置为off即可。
ALTERROLExxINDATABASEyySETstandard_conforming_stringsTOoff;
错误原因说明
早期PG普通字符串中的"\"是作为转义字符对待的,所以"\\"最终会认为是"\"。但是这是不符合SQL标准的,所以在PG9.1及以后,普通字符串中的\不会被任务是转义字符,而E"xx\x"中的\才会被当作是转义字符。为了使以前的代码可以在新的PG版本中运行,便有了standard_conforming_strings这个选项,这个选项默认是on,表示按照SQL标准处理字符串,当设置为off时,按照PG的旧版本处理字符串。
相关文章
- ppt导出pdf后非矢量图图片失真的解决办法
- ASPCMS 错误号:-2147467259 解决办法
- 【说站】zblog开启主题或插件显示“授权文件非法”的解决办法(支持ZBP1.7+)
- redis远程连接不上解决办法「建议收藏」
- 临界区问题及其解决办法(抢占式内核和非抢占式内核)
- WordPress链接自动添加Noopener Noreferrer的解决办法
- VMware下CentOS 6.3 NAT不能连外网的问题解决办法
- 排除Linux系统无法进入的解决办法(linux 系统进不去)
- MySQL 数据库不能提交问题解决办法(mysql不能提交数据库)
- 字段解决办法解决Oracle创建表缺失字段的办法(oracle中创建表缺失)
- Oracle8i字符集乱码问题析及其解决办法
- sqlserver错误602,未能在sysindexes中找到数据库的解决办法
- PHPjson_encode中文乱码问题的解决办法
- Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
- phpfsockopen解决办法php实现多线程
- mongodb错误tcmalloc:largeallocoutofmemory,printingstackandexiting解决办法