|
||||||||||||||||||||||||||||
| 前のページ 1 2 | ||||||||||||||||||||||||||||
| 制御構造 | ||||||||||||||||||||||||||||
|
Oracle、PostgreSQLともに、基本的な制御文は同じものが揃っており、そのまま通用します。 |
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
| GOTO文 | ||||||||||||||||||||||||||||
|
ただしPL/pgSQLでは、GOTO文がサポートされていません。しばしばGOTO文は、上述した制御構造では簡単には記述できない場合に使用されます。他の制御構造で代用した場合には、変換に手間取ることがあるでしょう。 |
||||||||||||||||||||||||||||
| RETURN文 | ||||||||||||||||||||||||||||
|
単一の値を返すPL/SQLのストアドファンクションでは、RETURN文が最低1つは必要です。同じように、PL/pgSQLでもRETURN文が1つは必要なことに注意してください。 一方、PL/SQLのストアドプロシージャでRETURN文を使うとエラーになることに注意してください。これは、PL/SQLのストアドプロシージャでは、OUT系パラメータ(後述)を使って値を返すためです。 |
||||||||||||||||||||||||||||
| NULL文 | ||||||||||||||||||||||||||||
|
OracleではNULL文が使えますが(リスト14)、PostgreSQLではNULL文は許されていません(リスト15)。しかし、NULL文は実質的に何もしない文なので、単純に削除すればOKです。 |
||||||||||||||||||||||||||||
BEGIN
|
||||||||||||||||||||||||||||
|
リスト14:OracleのNULL文 |
||||||||||||||||||||||||||||
CREATE FUNCTION HAS_ERROR()
|
||||||||||||||||||||||||||||
|
リスト15:PostgreSQLのNULL文(エラー) |
||||||||||||||||||||||||||||
| リスト15を実行するとエラーになります。 |
||||||||||||||||||||||||||||
| パラメータ | ||||||||||||||||||||||||||||
|
PostgreSQLは、Oracleのような名前付きパラメータ宣言(リスト16)に直接対応していませんが、ALIAS FORを使えば間接的に対応することができます(リスト17) |
||||||||||||||||||||||||||||
CREATE FUNCTION
|
||||||||||||||||||||||||||||
|
リスト16:Oracleの名前付きパラメータ宣言 |
||||||||||||||||||||||||||||
CREATE FUNCTION
|
||||||||||||||||||||||||||||
|
リスト17:PostgreSQLでのALIAS FORの利用 |
||||||||||||||||||||||||||||
SELECT SAY_A_IS_B('dog', 'animal')
|
||||||||||||||||||||||||||||
| 実行結果は次のとおりです。 |
||||||||||||||||||||||||||||
say_a_is_b
|
||||||||||||||||||||||||||||
|
前のページ 1 2 |
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||

