PL/pgSQL/複数の引数を渡す方法
の編集
Top
/
PL
/
pgSQL
/
複数の引数を渡す方法
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
PostgreSQL/template0とtemplate1の違いについて
---- ⌣''[[PL/pgSQL入門ページに戻る>PL/pgSQL入門]]'' ---- * 複数の引数を渡す方法 [#y79ce378] 前回の記事「[[引数を渡す方法>PL/pgSQL/引数を渡す方法]]」では、ファンクションに1つの引数を渡す方法を学びました。~ 今回はファンクションに2つ以上の引数を渡すサンプルを記します。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * お約束 [#n3c5647c] 当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。~ 当サイトの資料により直接的および間接的障害が生じても一切責任を負いませんので、あらかじめご了承ください。~ 自己責任のもとで本資料をご利用ください。 * 複数の引数を渡すサンプル [#yf917ffe] PL/pgSQLで複数の引数を渡すサンプルコードを記します。~ 引数で渡した値を足し算し結果をクエリーに表示します。~ #ref(plus.sql) -- 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として出力するのと、クエリー結果として足し算した結果を表示します。 * ファンクションの登録および実行 [#ldcd10a9] &ref(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) * ファンクションの削除 [#g0fbe8ba] psqlから直接DROPしてみます。 sakuradb=> drop function plus(n1 int, n2 int); DROP FUNCTION * まとめ [#tfc74e5f] +psqlフロントエンドからsqlファイルを実行したい場合は、\iを使う。~ + \cd [ directory ] でディレクトリ移動ができる。 + \! pwd で現在のディレクトリが表示される。 ---- ⌣''[[PL/pgSQL入門ページに戻る>PL/pgSQL入門]]'' #htmlinsertpcsp(db-btm.html,db-sp.html)
タイムスタンプを変更しない
---- ⌣''[[PL/pgSQL入門ページに戻る>PL/pgSQL入門]]'' ---- * 複数の引数を渡す方法 [#y79ce378] 前回の記事「[[引数を渡す方法>PL/pgSQL/引数を渡す方法]]」では、ファンクションに1つの引数を渡す方法を学びました。~ 今回はファンクションに2つ以上の引数を渡すサンプルを記します。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * お約束 [#n3c5647c] 当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。~ 当サイトの資料により直接的および間接的障害が生じても一切責任を負いませんので、あらかじめご了承ください。~ 自己責任のもとで本資料をご利用ください。 * 複数の引数を渡すサンプル [#yf917ffe] PL/pgSQLで複数の引数を渡すサンプルコードを記します。~ 引数で渡した値を足し算し結果をクエリーに表示します。~ #ref(plus.sql) -- 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として出力するのと、クエリー結果として足し算した結果を表示します。 * ファンクションの登録および実行 [#ldcd10a9] &ref(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) * ファンクションの削除 [#g0fbe8ba] psqlから直接DROPしてみます。 sakuradb=> drop function plus(n1 int, n2 int); DROP FUNCTION * まとめ [#tfc74e5f] +psqlフロントエンドからsqlファイルを実行したい場合は、\iを使う。~ + \cd [ directory ] でディレクトリ移動ができる。 + \! pwd で現在のディレクトリが表示される。 ---- ⌣''[[PL/pgSQL入門ページに戻る>PL/pgSQL入門]]'' #htmlinsertpcsp(db-btm.html,db-sp.html)
テキスト整形のルールを表示する
添付ファイル:
plus.sql
141件
[
詳細
]