目次
Oracle Database だと PL/SQL というのがあり、 ストアドプロシージャやストアドファンクションを作って実行することができます。 PostgreSQL でも同じように ファンクション を作って実行することができます。
ここでは、ファンクションを作らずに、その場で PL/pgSQL を実行する方法をまとめました。
検証した環境
- クライアント: version 9.6
- サーバ: version 9.3
方法
DO
を使います。
1 2 3 4 5 6 |
DO $$ DECLARE -- BEGIN -- END$$; |
このように書いた場合、 PL/pgSQL が処理言語として使われ、直ちに処理が実行されます。 ほかに PL/Tcl, PL/TclU, PL/Perl, PL/PerlU, PL/PythonU などを使う場合は DO の直後にその言語を記述します。 DO plperl
のように。
例
1 2 3 4 5 6 7 |
DO $$ DECLARE T VARCHAR := 'Test'; BEGIN RAISE NOTICE '%', T; RAISE NOTICE '%', (SELECT NOW()); END$$; |
DO
ステートメント は PostgreSQL 9.0 で導入されました。