参数引用
 
                  更新时间 2025-02-14 10:22:27
                 
 
                    最近更新时间: 2025-02-14 10:22:27
                  
 本页介绍天翼云TeleDB数据库PL/pgsql函数的参数引用方法。
 PL/pgsql函数的参数是以$1,$2这样标识符来进行传递,也支持命名参数,所以参数的定义可以用下面的方式。
无命名参数
teledb=# CREATE OR REPLACE FUNCTION f2(text) RETURNS TEXT AS
teledb-#  $$
teledb$#  BEGIN
teledb$#      RETURN $1;
teledb$#  END;
teledb$#  $$
teledb-#  LANGUAGE PLPGSQL;
CREATE FUNCTION
teledb=# SELECT * FROM f2('teledb');
f2    
---------
teledb
(1 row)给标识符指定别名
teledb=# CREATE OR REPLACE FUNCTION f2(text) RETURNS TEXT AS
teledb-# $$
teledb$# DECLARE
teledb$#     a_xm ALIAS FOR $1; --a_xm是$1的别名
teledb$# BEGIN
teledb$#     RETURN a_xm;
teledb$# END;
teledb$# $$
teledb-# LANGUAGE PLPGSQL
teledb-# ;
CREATE FUNCTION
teledb=# SELECT * FROM f2('teledb');
f2    
---------
teledb
(1 row)命名参数
teledb=# CREATE OR REPLACE FUNCTION f2(a_xm text) RETURNS TEXT AS
teledb-# $$
teledb$# DECLARE
teledb$#     v_xm ALIAS FOR $1;
teledb$# BEGIN
teledb$#     RAISE NOTICE 'a_xm = % ; v_xm = % ; $1 = %',a_xm,v_xm,$1;
teledb$#     RETURN $1;
teledb$# END;
teledb$# $$
teledb-# LANGUAGE PLPGSQL;
CREATE FUNCTION
teledb=# SELECT * FROM f2('teledb');
NOTICE:  a_xm = teledb ; v_xm = teledb ; $1 = teledb
f2    
---------
teledb
(1 row)