其他控制语句
最近更新时间: 2024-10-17 17:10:00
以下几个示例,说明其他控制语句的类型以及使用方法。
执行一个没有结果的命令
postgres=# CREATE OR REPLACE FUNCTION f27() RETURNS void AS
postgres-# $$
postgres$# BEGIN
postgres$# perform f27(1);
postgres$# END;
postgres$# $$
postgres-# LANGUAGE plpgsql;
CREATE FUNCTION
postgres=# SELECT f27();
f27
-----
(1 row)
获取执行结果
postgres=# DROP FUNCTION f27(INTEGER);
DROP FUNCTION
postgres=# CREATE OR REPLACE FUNCTION f27(a_id INTEGER) RETURNS VOID AS
postgres-# $$
postgres$# DECLARE
postgres$# v_mc TEXT;
postgres$# BEGIN
postgres$# SELECT mc INTO v_mc FROM t WHERE id=a_id;
postgres$# IF FOUND THEN
postgres$# RAISE NOTICE '查询到记录,值为%',v_mc;
postgres$# ELSE
postgres$# RAISE NOTICE '查不到记录' ;
postgres$# END IF;
postgres$# END;
postgres$# $$
postgres-# LANGUAGE plpgsql;
CREATE FUNCTION
postgres=# SELECT f27(1);
NOTICE: 查询到记录,值为TDSQLPG
f27
-----
(1 row)
postgres=# SELECT f27(3);
NOTICE: 查不到记录
f27
-----
(1 row)
获取影响行数
postgres=# CREATE OR REPLACE FUNCTION f27(a_id INTEGER) RETURNS VOID AS
postgres-# $$
postgres$# DECLARE
postgres$# v_mc TEXT;
postgres$# v_row_count BIGINT;
postgres$# BEGIN
postgres$# SELECT mc INTO v_mc FROM t WHERE id=a_id;
postgres$# GET DIAGNOSTICS v_row_count = ROW_COUNT;
postgres$# RAISE NOTICE '查询到的记录数为 % ',v_row_count;
postgres$# END;
postgres$# $$
postgres-# LANGUAGE plpgsql;
CREATE FUNCTION
postgres=# SELECT f27(1);
NOTICE: 查询到的记录数为 1
f27
-----
(1 row)
postgres=# SELECT f27(3);
NOTICE: 查询到的记录数为 0
f27
-----
(1 row)