|
||||||||||||||||||||||||||||
| 1 2 次のページ | ||||||||||||||||||||||||||||
| OUTパラメーター | ||||||||||||||||||||||||||||
|
プロシージャー移行3回目の今回は、OUT/IN OUTパラメータについて紹介します。 PL/SQLにおけるOUTモードのパラメータには、値を書き込むことができ、ストアドプロシージャから呼び出し側に、その値を返すことができます(リスト18)。 |
||||||||||||||||||||||||||||
CREATE PROCEDURE MUL_DIV( A IN NUMBER,
|
||||||||||||||||||||||||||||
|
リスト18:OracleのOUTモードパラメータへの書き込み |
||||||||||||||||||||||||||||
| PostgreSQLにはOUTパラメータがありませんが、複合型を返すことができるので、一度に複数の値を返すことは可能です。ただしその場合は、値の受け取り方がまったく違いますので、呼び出し側での変更も必要です。 まず、複数の値を返すための複合型を定義します。ストアドプロシージャの内部では、複合型に各OUTパラメータの値を入れて返すようにします(リスト19)。 |
||||||||||||||||||||||||||||
CREATE TYPE MUL_DIV_OUTS AS
|
||||||||||||||||||||||||||||
|
リスト19:PostgreSQLの複合型の定義 |
||||||||||||||||||||||||||||
| 次に、呼び出し側では複合型から各OUTパラメータを取り出し、該当する変数に代入するようにします(リスト20)。 |
||||||||||||||||||||||||||||
CREATE OR REPLACE FUNCTION TEST_MUL_DIV()
|
||||||||||||||||||||||||||||
|
リスト20:呼び出し側でのパラメータの代入 |
||||||||||||||||||||||||||||
| 実行した結果は次のようになります。 |
||||||||||||||||||||||||||||
% SELECT TEST_MUL_DIV();
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
1 2 次のページ |
||||||||||||||||||||||||||||
|
書籍紹介 まるごと PostgreSQL! Vol.1
日本での市場シェアNo.1(オープンソースRDBMS部門)データベースソフトPostgreSQLの最新情報を、開発メンバーを含む豪華執筆陣が多面的かつ詳細に解説します。PostgreSQL用クラスタリング/レプリケーションソフト、PostgreSQL⇔Oracle移行、PostgreSQLによる大規模サイト構築法、新バージョンPostgreSQL 8.0先行レビュー、PostgreSQL用.NETデータプロバイダ等々、他では読めない貴重な記事が満載です。発売日:2004/12/08発売 定価:\1,890(本体 \1,800+税) |
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||


