Developer

【SQL基礎】ストアドファンクションの実行
2022.01.13
Lv1

【SQL基礎】ストアドファンクションの実行

本記事ではストアドファンクションの実行について扱います。

ストアドファンクションはストアドルーチンの一種です。

ストアドルーチンについてはこちらの記事をご覧ください。

ストアドファンクションとセットで扱われることの多い「ストアドプロシージャ」についてはこちらの記事をご覧ください。

ストアドファンクションの登録についてはこちらの記事をご覧ください。

ストアドファンクションの削除、更新についてはこちらの記事をご覧ください。


ストアドファンクションの実行

ストアドファンクションは通常の関数と同様に使用できます。

例1.通常の関数

ストアドファンクションの実行例を見る前に、通常の関数の実行例を確認しましょう。

NOW関数は現在の日時を返す関数です。SELECT文と併せて使用すると実行結果を確認できます。


例2.引数のないストアドファンクション”TEST1″

こちらの記事で作成した”TEST1″を実行してみます。例1と同様にSELECT文と併せて実行結果を確認します。


例3.引数のあるストアドファンクション”TEST2″

“TEST2″は引数が必要なファンクションとして定義しました。

今回は引数として”タロウ”という文字列を指定して実行します。


例4.引数のあるストアドファンクション”TEST2″

引数が必要なファンクションを引数無しで実行したらどうなるのでしょうか。

検証してみましょう。

エラーが返ってきました。定義通りに実行する必要があります。


SELECT文と併せた単純な実行例で確認してきましたが、ストアドファンクションはSQL文中で通常の関数と同様に使用できます。


学習のポイント

・ストアドファンクションは通常の関数と同様に実行できる。


練習問題

問、以下のテーブル(massagesテーブル)にid = 3、message = “Hello, サブロウ”というレコードを挿入するとします。記事中に出てきたファンクション”TEST2″を使って挿入するにはどのように記述すればよいでしょうか。

レコードの挿入についてはこちらの記事で説明しています。

 

答え
INSERT INTO messages
VALUES (3, TEST2('サブロウ'));

VALUESの行は”VALUES (3, ‘Hello, サブロウ’);”と記述しても挿入自体はうまくいきます。

今回はストアドファンクション”TEST2″を使うという条件があるので上記のように記述しましょう。

以下は実行例です。


連載目次リンク

SQL基礎 連載目次

関連する連載リンク

SQL練習問題 一覧まとめ