----
⌣''[[PL/pgSQL入門ページに戻る>PL/pgSQL入門]]''
----
* 引数を渡す方法 [#ocb88cdf]
ファンクションに引数を渡すPL/pgSQLのサンプルを記します。

#contents
#htmlinsertpcsp(db-top.html,db-sp.html)

* お約束 [#gfeedfc3]
当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。~
当サイトの資料により直接的および間接的障害が生じても一切責任を負いませんので、あらかじめご了承ください。~
自己責任のもとで本資料をご利用ください。

* 引数を渡す [#j5cc2ebc]
PL/pgSQLで引数を渡すサンプルコードを記します。~
引数で渡した文字列をクエリーに表示します。~
#ref(say.sql)
 -- say.sql
 CREATE OR REPLACE FUNCTION say(msg TEXT)
 RETURNS
     TEXT
 AS $$
 DECLARE
 
 BEGIN
     RAISE INFO '%', msg;
     RETURN msg;
 END
 $$ LANGUAGE plpgsql
 ;
上記のファンクションは、TEXTの引数をもらい、ターミナルにINFOとして出力するのと、クエリー結果として引数の値を表示します。


* sayファンクションの登録および実行 [#k6a8d949]
&ref(say.sql);を登録し実行します。~
今回の例では、すべてターミナルから実行する例を記します。

 sakura@cygwin ~/PLpgSQL$ psql -U sakura -h localhost sakuradb -f say.sql
 Password for user sakura:
 CREATE FUNCTION

 sakura@cygwin ~/PLpgSQL$  psql -U sakura -h localhost -c "select say('HELLO');" sakuradb
 Password for user sakura:
 INFO:  HELLO
   say
 -------
  HELLO
 (1 row)
上記の出力例の通り、-cオプションとSQLを組み合わせるとターミナルから直接実行することができます。

* sayファンクションの削除 [#f002c0ad]
上記と同じく、ターミナルから直接DROPしてみます。
 sakura@cygwin ~/PLpgSQL$  psql -U sakura -h localhost -c "drop function say(msg text);" sakuradb
 Password for user sakura:
 DROP FUNCTION

* まとめ [#b6dc1579]
+引数を渡す場合は、ファンクション名の後の()の中に記述する。
+psqlの-cオプションを使うとターミナルから直接実行することができる。

----
⌣''[[PL/pgSQL入門ページに戻る>PL/pgSQL入門]]''

#htmlinsertpcsp(db-btm.html,db-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS