在App中的SQLQuery对象 执行 PostgreSQL 代码,使用语句块的问题:
DO $$
BEGIN
--语句块里面,更新数据行
update MyTest set cremark = 'Test' where id=29; ---注意,这里的分号是必须的,不然语法过不了
END $$;
要执行成功,在App中的SQL对象,必须是ExecSQL,CommandText方式运行SQL命令;
如果用Open打开数据集结果的方式,则提示:
ERROR: SQL statement doesn't return rows
DO $$
BEGIN
--语句块里面,不要返回数据集, 会出错, 这相当于一个存储过程,不能返回数据集结果
select * from MyTest;
END; $$
如果这样错误的使用,会提示如下:
ERROR: query has no destination for result data
HINT: If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXT: PL/pgSQL function inline_code_block line 5 at SQL statement