今回はSnowflakeでストアドプロシージャを利用する方法について解説していきます。
テーブルの作成
まず、テーブルを新規作成します。
(参考:【SQL】【Snowflake】テーブルの更新【CREATE OR REPLACE TABLE】 | ビジネスイッチ (how-to-business.com))
-- 新規作成用
create or replace table DB1.PUBLIC.DATA1
(
"id1" VARCHAR(10),
"id2" VARCHAR(10)
);
プロシージャの作成
続いてプロシージャを作成します。
(INSERT文:【SQL】【Snowflake】テーブルに値を格納する方法【INSERT】 | ビジネスイッチ (how-to-business.com))
-- CREATE OR REPLACE PROCEDURE1
CREATE OR REPLACE PROCEDURE DB1.PUBLIC.INSERT_PROC1()
RETURNS VARCHAR
LANGUAGE SQL
AS
BEGIN
INSERT INTO DB1.PUBLIC.DATA1 VALUES ('1111', '1111');
END;
- CREATE OR REPLACE PROCEDUREにより、プロシージャを作成できる。
- DB1.PUBLIC内にINSERT_PROC1()を作成する。
- RETURNS VARCHARにより、戻り値を文字列型に設定できる。
- LANGUAGE SQLにより、SQL文を使用すると宣言(?)
- AS BEGIN~ENDにより、本体となるSQL文を記載できる。
登録プロシージャの確認
続いて登録しているプロシージャ一覧の確認方法です。
-- SHOW PROCEDURE1
SHOW PROCEDURES;
- SHOW PROCEDURESにより、プロシージャ一覧を確認できる(クエリ結果として表示)。
- 今回は「DB1.PUBLIC.INSERT_PROC1()」が表示された。
プロシージャの削除
続いて登録しているプロシージャ削除の方法です。
-- DROP PROCEDURE1-
DROP PROCEDURE DB1.PUBLIC.INSERT_PROC1()
- DROP PROCEDUREにより、プロシージャを削除できる。
- 今回は「DB1.PUBLIC.INSERT_PROC1()」を削除。
プロシージャの呼び出し
続いて登録しているプロシージャの呼び出し(実行)方法です。
-- CALL1-
CALL DB1.PUBLIC.INSERT_PROC1();
- CALL文により、プロシージャを呼び出し(実行)できる。
- 今回は(‘1111’, ‘1111’)をINSERTした。
【内部メモ:追記予定】