前回の記事「引数を渡す方法」では、ファンクションに1つの引数を渡す方法を学びました。
今回はファンクションに2つ以上の引数を渡すサンプルを記します。
当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。
当サイトの資料により直接的および間接的障害が生じても一切責任を負いませんので、あらかじめご了承ください。
自己責任のもとで本資料をご利用ください。
PL/pgSQLで複数の引数を渡すサンプルコードを記します。
引数で渡した値を足し算し結果をクエリーに表示します。
-- plus.sql
CREATE OR REPLACE FUNCTION plus(n1 int, n2 int)
RETURNS
int
AS $$
DECLARE
BEGIN
RAISE INFO '% + %', n1, n2;
RETURN n1 + n2;
END
$$ LANGUAGE plpgsql
;
上記のファンクションは、intの引数を2つ渡し、ターミナルにINFOとして出力するのと、クエリー結果として足し算した結果を表示します。
plus.sqlを登録し実行します。
ユーザ名、ホスト、データベース名は皆さんの環境にあった値に替えてください。
尚、今回は\iを使ってplus.sqlを実行してみる例になります。
plus.sqlが置いてあるディレクトリにcd(移動)して、以下の操作を行ってください。
sakura@cygwin ~$ psql -U sakura -h localhost sakuradb Password for user sakura: psql (9.6.0, server 9.2.17) Type "help" for help. sakuradb=> \i plus.sql CREATE FUNCTION sakuradb=>
sakuradb=> select plus(1,2);
INFO: 1 + 2
plus
------
3
(1 row)
sakuradb=> select plus(1+2,3+4);
INFO: 3 + 7
plus
------
10
(1 row)
psqlから直接DROPしてみます。
sakuradb=> drop function plus(n1 int, n2 int); DROP FUNCTION