今回は、Silverの「S3 開発/SQL - S3.1 SQL コマンド(関数定義、PL/pgSQL)」からの出題です。
値を返さない関数のプログラムを定義する時はCREATE PROCEDURE文を使う。
定義済みの関数のプログラムを変更する時は、新しいプログラムをALTER FUNCTION文により設定する。
関数の名前はスキーマ内で一意でなければならない。
関数は必ずしもPL/pgSQLのような手続き言語で作成する必要はなく、SELECT文やUPDATE文などのSQLで記述することもできる。
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2015年3月24日
PostgreSQLでは、PL/pgSQLなどの手続き言語、あるいはSQL文で関数を定義することができます。
関数の定義はCREATE FUNCTION文で行います。関数プログラムの本体も、その中で記述します。値を返さない関数も定義可能ですが、CREATE FUNCTION文でvoid型関数として記述します。
関数プログラムを修正する時は、CREATE OR REPLACE FUNCTIONによりプログラムを置換します。ALTER FUNCTIONというコマンドもありますが、これは関数の様々な属性を変更するだけで、プログラム本体を変更することはできません。
引数の個数やデータ型が異なる関数を同じ名前で定義し、呼び出し時の引数によって、自動的に対応する関数を実行させることができます。これを関数のオーバーロードと呼びます。
従って正解はAとEです。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.