plpgsqlのIF条件内でSQL文を実行するには? 関数を作成したり置き換えたりしたくありません。これは私が試したものです:
DO LANGUAGE plpgsql $$
BEGIN
IF 'Khosla' = 'Khosla' THEN
SELECT * FROM test_log limit 10;
ELSE
RAISE NOTICE 'not worked';
END IF;
END;
$$;
ERROR: query has no destination for result data
HINT: If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXT: PL/pgSQL function "inline_code_block" line 3 at SQL statement
これも試しましたが、データを取得できませんでした:
DO LANGUAGE plpgsql $$
BEGIN
if 'a' = 'a' THEN
PERFORM * FROM test_log limit 10;
else
raise notice 'not worked';
end if;
end;
$$;
Output: Query returned successfully with no result in 13 ms.
ドキュメントを適切に読んだ後、PERFORM が SQL を実行し、結果セットを破棄することを知りました。
SQL ステートメントを実行して結果セットを取得するのを手伝ってもらえますか?