【PostgreSQL】ストアド ~ SELECT INTO ~

■ はじめに

 今回は、Redshiftの ストアド プロシージャ (Stored Procedure) を
解析しなくてはならなくなり、色々と知らんことがあったのでメモしておく
(Redshiftだと手元で弄れないので、代わりにPostgreSQLを使った)

SQL Fiddle
https://www.db-fiddle.com/

目次

【1】SELECT INTO
【2】サンプル
 例1:Hello world
【3】Tips
 1)デバッグログ - raise info -

【1】SELECT INTO

SELECT [値] INTO [変数名] FROM [テーブル];

【2】サンプル

例1:Hello world

-- 結果格納用テーブル
CREATE TABLE demo_result(result VARCHAR(100));

-- ストアドプロシージャ
CREATE OR REPLACE PROCEDURE demo_cedure()
  LANGUAGE plpgsql
AS $$
DECLARE
  result VARCHAR(100);
BEGIN
  -- ★注目★
  SELECT 'Hello world!!' INTO result;
  -- 後述「1)デバッグログ - raise info -」参照
  RAISE INFO 'Result: %', result;
  -- 値を入れる
  INSERT INTO demo_result VALUES (result);
END
$$

-- 呼び出し
CALL demo_cedure();

-- 結果表示
SELECT * FROM demo_result;
result
Hello world!!

【3】Tips

1)デバッグログ - raise info -

https://www.db-fiddle.com/

だと残念ながら使えないが、pgadmin とかだと
「raise info」が使える

-- %部分に変数の値が表示される
RAISE INFO 'Result: %', result;

関連記事

ストアド ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2010/08/06/112528
ストアド ~ 基本編 / 変数 ~
https://dk521123.hatenablog.com/entry/2013/01/25/002936
ストアド ~ 基本編 / 繰り返し ~
https://dk521123.hatenablog.com/entry/2012/06/22/213026
ストアド ~ 基本編 / 条件分岐 ~
https://dk521123.hatenablog.com/entry/2024/11/12/005529
PostgreSQL】ストアド ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2014/04/21/000100