博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于“invalid input syntax for type boolean”
阅读量:6094 次
发布时间:2019-06-20

本文共 1001 字,大约阅读时间需要 3 分钟。

hot3.png

postgresQL 中,编写存储过程时,通过execute执行sql语句。可是有些情况下,比如update,不需要获取sql执行的结果,如果这时使用“execute”执行sql,就会报错“invalid input syntax for type boolean”。这时,应该使用“perform”执行不需要获得返回值的sql。

当然,还有一种可能,如果定义了一个可以重定义的cursor,而打开这个cursor时使用了一个字符串作为sql,此时,遍历cursor的时候,不能再对这个sql进行赋值操作,否则也会报这个错误。

例如:

sql := 'select gid,tile_x,tile_y,the_geom from '||tbl ;	OPEN cur FOR execute sql;	WHILE row_num > 0 LOOP		FETCH cur INTO gid,tile_x,tile_y,the_geom;		geom_text := GEOM2PIX(tile_x,tile_y,the_geom);		sql := 'UPDATE '||tbl||' SET geom_text = '''||geom_text||''' where gid = '||gid;		execute sql;--这时就会报错		row_num := row_num -1;	END LOOP;改成:sql := 'select gid,tile_x,tile_y,the_geom from '||tbl ;	OPEN cur FOR execute sql;	WHILE row_num > 0 LOOP		FETCH cur INTO gid,tile_x,tile_y,the_geom;		geom_text := GEOM2PIX(tile_x,tile_y,the_geom);		sql_text := 'UPDATE '||tbl||' SET geom_text = '''||geom_text||''' where gid = '||gid;		execute sql_text;--没问题		row_num := row_num -1;	END LOOP;

转载于:https://my.oschina.net/weiwubunengxiao/blog/215028

你可能感兴趣的文章
JAXB方式读写XML文件
查看>>
SeciLog 1.3.2 发布,增加了日志审计编辑,优化了告警等功能
查看>>
实现简易贪吃蛇
查看>>
保持Qt程序中GUI的响应流畅
查看>>
mock服务器
查看>>
mybatis转义字符表
查看>>
拥抱 Android Studio 之一:从 ADT 到 Android Studio
查看>>
java绝对路径及相对路径总结
查看>>
谈下抽象类和接口
查看>>
Google C++ Style Guide
查看>>
Scala中的Map使用例子
查看>>
HashMap的实现原理笔记
查看>>
最快渲染方案
查看>>
Python基础要点总结
查看>>
go语言结构体入门
查看>>
virtualbox安装ghost xp
查看>>
ServletRequest.getParameter() && ServletRequest.getParameterValues();
查看>>
排序系列-插入排序
查看>>
MySQL知识点
查看>>
在线ASP转PHP
查看>>