首先,是的,我已经阅读了DO声明的文档:)
http://www.postgresql.org/docs/9.1/static/sql-do.html
http://www.postgresql.org/docs/9.1/static/sql-do.html
所以我的问题:
我需要执行一些包含UPDATE语句的动态代码块,并计算所有受影响行的数量.我正在使用Ado.Net提供商.
在Oracle中,解决方案将包含4个步骤:
>将InputOutput参数“N”添加到命令
>添加BEGIN … END;命令
> add:N:=:每个语句后的N sql%rowcount.
>它完成了!执行后我们可以从命令中读取N参数.
解决方法
DO语句块很适合执行动态sql.回报价值并不好.使用
plpgsql
function.
您需要的关键声明是:
@H_502_31@GET DIAGNOSTICS integer_var = ROW_COUNT;示例代码:
@H_502_31@CREATE OR REPLACE FUNCTION f_upd_some() RETURNS integer AS $func$ DECLARE ct int; i int; BEGIN EXECUTE 'UPDATE tbl1 ...'; -- something dynamic here GET DIAGNOSTICS ct = ROW_COUNT; -- initialize with 1st count UPDATE tbl2 ...; -- nothing dynamic here GET DIAGNOSTICS i = ROW_COUNT; ct := ct + i; -- add up RETURN ct; END $func$ LANGUAGE plpgsql;呼叫:
@H_502_31@SELECT * FROM f_upd_some();版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。