PostgreSQL ERROR: invalid escape string 解决办法
今天有同事在配置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 ? ESCAPE ‘\\' ) ORDER BY NUCORDER0 ” : ERROR: invalid escape string
Hint: Escape string must be empty or one character..
错误信息很清楚,ESCAPE ‘\\'这里,引号内只能为一个字符,而不能是两个\。解决的办法很简单,将该JDBC用户的连接session属性standard_conforming_strings设置为off即可。
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数据库服务端监听设置及客户端连接方法教程
众所周知,PostgreSQL 是一个自由的对象-关系数据库服务器(数据库管理系统),是一个可以免费使用的开放源代码数据库系统.本文详细介绍了PostgreSQL数据库服务端监听设置及客户端连接方法,具体如下: 一.背景介绍: 本文所述PostgreSQL服务端运行在RedHat Linux上,IP为:192.168.230.128 客户端安装在Windows XP上, IP为:192.168.230.1 二.配置方法: 1.修改服务端/opt/postgresql/data/postgresq
-
一个提升PostgreSQL性能的小技巧
在一个(差)的PostgreSQL 查询中只要一个小小到改动(ANY(ARRAY[...])to ANY(VALUES(...)))就能把查询时间从20s缩减到0.2s.从最简单的学习使用 EXPLAIN ANALYZE开始,到学习使用 Postgres community大量学习时间的投入将有百倍时间到回报. 使用Postgres监测慢的Postgres查询 在这周早些时候,一个用于我们的图形编辑器上的小表(10GB,1500万行)的主键查询,在我们的一个(多个)数据库上发生来大的查询性能问题
-
CentOS中运行PostgreSQL需要修改的内核参数及配置脚本分享
PostgreSQL在CentOS上部署的时候,需要设置一些操作系统的参数,官方文档上列举了一些(传送门).除了这些,还有一些其他的设置,如单个用户允许的最大进程数,单个进程的最大句柄数等,这些一般也需要调整,否则系统会在一些条件下出现问题,或者性能下降.下面从系统资源限制类和内存参数优化类来进行说明. 系统资源限制类 1.单个用户允许的最大进程数:linux系统默认是1024,如果PG的最大连接数超过1024,则实际的连接数会小于1024(PG的postmaster进程,checkpointe
-
PostgreSQL ERROR: invalid escape string 解决办法
今天有同事在配置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".&quo
-
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
前段时间介绍过jquery uploadify上传插件的使用方法,我在使用中遇到过Http Error 302错误问题,应该会有很多人在使用中遇到过,在此记录下来: 首先http 302是请求被重定向的意思,这就很容易理解了,如果你的uploadify处理上传脚本有session验证,就会出现此错误,因为flash在执行post请求的时候没有包含cookie信息,而服务器的session会根据客户端的cookie来得到SESSIONID.没有提交cookie自然就不能获取到session,然后u
-
Mybatis出现ORA-00911: invalid character的解决办法
今天在项目中,使用Mybatis对oracle数据库进行操作的时候,报出ORA-00911: invalid character的错误,检查了一下SQL,发现都书写正确啊,复制到plsql上执行也都没问题,这什么原因呢? 注意:这里说的是用navicat导出查询数据的时候报错:ORA-00911: invalid character 主要原因是这里的sql是不允许带最后的分号的,删掉就好了 在plsql等工具中写完后习惯性的打上;号,在复制时也要注意啊!! 以上所述是小编给大家介绍的Mybati
-
MySQL修改安全策略时报错:ERROR 1193 (HY000)的解决办法
我使用的版本是MySQL5.73,环境是Linux CentOS7,其他版本不知道是否可行,望谅解. 当我们想设置简单的密码的时候,看了别人发的如何修改安全策略的代码,如下: set global validate_password_policy=0; set global validate_password_length=1; 但是当我们使用的时候,却报了这样一个错误: 这是说你启动没有安全检查插件 启动方法如下: 首先打开/etc/my.cnf,然后在[mysqld]的下方加入如下代码: p
-
Jquery跨域获得Json时invalid label错误的解决办法
最后,仔细安静下来,细读 json 官方文档后发现这么一段: JSON数据是一种能很方便通过JavaScript解析的结构化数据.如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型.使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面.服务器端应当在JSON数据前加上回调函数名,以便完成一个有效的JSONP请求.如果要指定回调函数的参数名来取代默认的callback,可以通过设置$.ajax()的jsonp
-
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
本文实例讲述了Android模拟器无法启动,报错:Cannot set up guest memory 'android_arm': Invalid argument的解决方法.分享给大家供大家参考,具体如下: [错误] 模拟器无法启动,报错:Cannot set up guest memory 'android_arm': Invalid argument [解决办法] 在AVD中(Android Virtual Device Manager)将模拟器的RAM调成512. 这里写图片描述 st
-
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
在一台处理网络支付的服务器迁移的时候,发现不能支付. PHP环境:PHP版本为5.3.3系统为Red Hat 4.1.2-54 查看apache的错误日志,发现是加密文件中一个函数bcmul()报错: 复制代码 代码如下: PHP Fatal error: Call to undefined function bcmul() in /php_rsa.php on line xxx 解决办法:使用如下命令: 复制代码 代码如下: yum install php-bcmath 就安装好了. 如果出
-
mac os gem安装json出现error failed的解决办法
升级到最新的mac os Mavericks.装json出现错误: 复制代码 代码如下: gem install json -v '1.8.1' Building native extensions. This could take a while... ERROR: Error installing json: ERROR: Failed to build gem native extension. /usr/local/var/rbenv/versions/2.0.0-p247/bi
-
Windows使用docker打开新窗口error解决办法
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/containers/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to c
-
nginx提示:500 Internal Server Error错误解决办法
nginx提示:500 Internal Server Error错误解决办法 前言: 今天发现网站无法上传资源和发布文章,通过浏览器查看服务器的返回信息 500 Internal Server Error 刚开始我以为是应用服务器或者是程序异常,检查了下各自的日志,连请求记录都无,程序代码里也没抛出过该类型的异常,所以可以从服务器或者Nginx中找原因了. 1.是否磁盘空间不足? 使用 df -k 查看硬盘空间是否满了.清理硬盘空间就可以解决500错误.nginx如果开启了access lo
随机推荐
- lightBox 简易的全屏透明遮罩解决方法
- IIS APPPOOL\DefaultAppPool登录失败怎么办
- 快下载!值得装Windows 2003 SP1三大原因
- js获取图片宽高的方法
- ASP.NET Page函数调用顺序解析
- 浅析Android App的相对布局RelativeLayout
- 教你如何开启shopnc b2b2c 伪静态
- javascript文件加载管理简单实现方法
- php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
- linux文本过滤grep基础命令介绍(5)
- 防ASP注入终极防范
- java 数据的加密与解密普遍实例代码
- 改版了网上的一个js操作userdata
- ASP.NET MVC4使用MongoDB制作相册管理
- SQL SERVER中各类触发器的完整语法及参数说明
- 基于jQuery实现弹幕APP
- Android开发中常用的一些小技巧
- c#递归生成XML实例
- JS+WCF实现进度条实时监测数据加载量的方法详解
- JavaScript轮播停留效果的实现思路