[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ストアドサブプログラム (stored sub program)

pointこの用語のポイント

pointデータベースのお話で出てくるよ

pointストアドプロシージャとかストアドファンクションのことだよ

pointOracleで使われる表現だよ

スポンサーリンク

簡単に書くよ

ストアドサブプログラム (stored sub program)とは

データベースのOracleさんで使われる表現で、ストアドプロシージャとかストアドファンクションのこと。
言い換えると

データベースに対する「あれやれ、これやれ」の命令をひとつにまとめて保存したもの
です。

image piyo

詳しく書くよ

順番に見ていきましょう。

データベースは「データを入れておく箱」ね。
突っ込んで考えると混乱するかもしれません。
何となくのフィーリングで理解してください。

ストアドサブプログラム

Oracleは「大規模システムでよく使われるデータベース」です。
データ件数が多かったり、たくさんのアクセスがあったり、お仕事がいっぱいな大規模システムでよく使われます。

ストアドサブプログラム2

ストアドプロシージャストアドファンクションは、データベースに対する「あれやれ、これやれ」の命令を1つにまとめて保存したものです。
データベース世界における関数だと思ってください。

ストアドプロシージャとストアドファンクションの違いは、戻り値(関数から出てくるもの)の有無です。
戻り値が無いのがストアドプロシージャです。
戻り値が有るのがストアドファンクションになります。

ストアドサブプログラム3

以上を踏まえて「Oracleさんで使われる表現で、ストアドプロシージャとかストアドファンクションを指す用語」が「ストアドサブプログラム」です。
「ストアド」と「サブプログラム」間に点が入って「ストアド・サブプログラム」と表記するのが正式っぽいですが、そこら辺はゆるく捉えてください。

ストアドサブプログラムについて、Oracleさんの公式サイトには以下のように書かれていました。

ストアド・サブプログラムについて
サブプログラムは、特定の問題を解決したり、関連する一連のタスクを実行するSQL文およびPL/SQL文で構成されているPL/SQLユニットです。サブプログラムはパラメータを持つことができ、値は起動元から提供されます。サブプログラムは、プロシージャまたはファンクションです。通常、プロシージャはアクションを実行するために使用し、ファンクションは計算を行って値を戻すために使用します。

ストアド・サブプログラムは、データベースに格納されたサブプログラムです。ストアド・サブプログラムは、データベースに格納されているため、多様なデータベース・アプリケーションのビルディング・ブロックとして使用できます。別のサブプログラムまたは無名ブロック内で宣言されたサブプログラムは、ネストされたサブプログラムまたはローカル・サブプログラムと呼ばれます。宣言されたサブプログラムまたはブロックの外部から呼び出すことはできません。無名ブロックとは、データベースに格納されていないブロックです。


なんか難しそうなことがいっぱい書いてありますが、ポイントは

サブプログラムは、プロシージャまたはファンクションです。



ストアド・サブプログラムは、データベースに格納されたサブプログラムです。

の部分です。

この2つを合体させると

ストアド・サブプログラムは、データベースに格納されたプロシージャまたはファンクションです。

になります。

「データベースに格納されたプロシージャ」はストアドプロシージャです。
「データベースに格納されたファンクション」はストアドファンクションです。

これを先ほどの文章に当てはめると

ストアド・サブプログラムは、ストアドプロシージャまたはストアドファンクションです。

になります。

ふむ。
この文章でも、ストアド・サブプログラムはストアドプロシージャとかストアドファンクションのことだと説明されていますね。

以上でストアドサブプログラム自体の説明は終わりです。

ここまで説明を書いておきながらなんですが、実は私、お仕事の現場において「ストアドサブプログラム」という表現を聞いたことがありません。
大体みんな「ストアドプロシージャ」や「ストアドファンクション」と言っています。
ワイルドな人になると、ストアドファンクションも含めて「ストアドプロシージャ」と表現していたりしますよ。

image piyo2

一言でまとめるよ

まぁ「ストアドサブプログラム」って単語が出てきたら「ストアドプロシージャとかストアドファンクションのことなんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク