參數引用
更新時間 2025-02-14 10:22:19
最近更新時間: 2025-02-14 10:22:19
分享文章
本頁介紹天翼云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)