參數引用
 
                  更新時間 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)