■ はじめに
今回は、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 -
だと残念ながら使えないが、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