now()の結果を返すだけの以下の2つのPL/pgSQLを試しに作りました。SQL1は正しく結果が返ってきますが、SQL2は結果が何も返ってきません。どなたか説明できる方、いらっしゃいますでしょうか。宜しくお願い致します。
■SQL1
CREATE OR REPLACE FUNCTION select_now1() RETURNS date AS $$
DECLARE
d_current DATE := NULL;
BEGIN
SELECT INTO d_current now();
RETURN d_current;
END;
$$ LANGUAGE PLpgSQL;
■結果1
select_now1
-------------
2011-03-19
(1 行)
■SQL2
CREATE OR REPLACE FUNCTION select_now2(OUT d_current date) AS $$
DECLARE
d_current DATE := NULL;
BEGIN
SELECT INTO d_current now();
END;
$$ LANGUAGE PLpgSQL;
■結果2
select_now2
-------------
(1 行)
お礼
早々のご回答ありがとうございます。教えて頂いた方法でできました。 OUTパラメータに指定した変数はDECLAREで宣言してはいけないのですね。 どうもありがとうございました。