动态执行

最近更新时间: 2024-06-12 15:06:00

postgres=# CREATE OR REPLACE FUNCTION f27(a_id INTEGER) RETURNS text AS
postgres-# $$    
postgres$# DECLARE
postgres$#     v_sql TEXT;
postgres$#     v_mc TEXT;
postgres$# BEGIN          
postgres$#     v_sql := 'SELECT mc FROM t WHERE id='||a_id::TEXT;
postgres$#     EXECUTE v_sql INTO v_mc;     
postgres$#     RETURN v_mc;
postgres$# END;
postgres$# $$
postgres-# LANGUAGE plpgsql;
CREATE FUNCTION
postgres=# SELECT f27(1);
  f27  
-------
 TBase
(1 row)

动态执行就是拼sql语句,然后使用EXECUTE命令执行。