今回は、Silverの「S3 開発/SQL - S3.1 SQL コマンド(関数定義、PL/pgSQL)」からの出題です。
CREATE FUNCTION count_test(val INTEGER) RETURNS INTEGER AS
DECLARE
rtest RECORD;
cnt INTEGER;
BEGIN
cnt := 0;
FOR rtest IN SELECT * FROM test WHERE some_column > val LOOP
cnt := cnt + 1;
( ________ );
RETURN cnt;
END;
LANGUAGE plpgsql;
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2018年2月26日
PL/pgSQLでは、FOR、WHILE、FOREACHなどの制御構造で繰り返し実行を実現することができます。FORでは、多くの手続き型言語にある、iの値が1から10まで繰り返す、というようなパターンはもちろん、SELECT文が返す各行について処理を実行することもできます。
いずれの場合も、繰り返し実行する部分は、LOOPとEND LOOPで囲います。
従って、正解は END LOOP です。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.