其它控制语句 本页介绍天翼云TeleDB数据库PL/pgsql控制结构中的其他控制语句。 动态执行 plaintext teledb CREATE OR REPLACE FUNCTION f27(aid INTEGER) RETURNS text AS teledb $$ teledb$ DECLARE teledb$ vsql TEXT; teledb$ vmc TEXT; teledb$ BEGIN teledb$ vsql : 'SELECT mc FROM t WHERE id'aid::TEXT; teledb$ EXECUTE vsql INTO vmc; teledb$ RETURN vmc; teledb$ END; teledb$ $$ teledb LANGUAGE plpgsql; CREATE FUNCTION teledb SELECT f27(1); f27 teledbpg (1 row) 动态执行就是拼SQL语句,然后使用EXECUTE命令执行。 执行一个没有结果的命令 plaintext teledb CREATE OR REPLACE FUNCTION f27() RETURNS void AS teledb $$ teledb$ BEGIN teledb$ perform f27(1); teledb$ END; teledb$ $$ teledb LANGUAGE plpgsql; CREATE FUNCTION teledb SELECT f27(); f27 (1 row) teledb 获取执行结果 plaintext teledb DROP FUNCTION f27(INTEGER); DROP FUNCTION teledb CREATE OR REPLACE FUNCTION f27(aid INTEGER) RETURNS VOID AS teledb $$ teledb$ DECLARE teledb$ vmc TEXT; teledb$ BEGIN teledb$ SELECT mc INTO vmc FROM t WHERE idaid; teledb$ IF FOUND THEN teledb$ RAISE NOTICE '查询到记录,值为%',vmc; teledb$ ELSE teledb$ RAISE NOTICE '查不到记录' ; teledb$ END IF; teledb$ END; teledb$ $$ teledb LANGUAGE plpgsql; CREATE FUNCTION teledb