ストアドサブプログラム
データベースのお話で出てくるよ
ストアドプロシージャとかストアドファンクションのことだよ
Oracleで使われる表現だよ
簡単に書くよ
ストアドサブプログラム(英:stored sub program)とは
データベースのOracleさんで使われる表現で、ストアドプロシージャとかストアドファンクションのこと。
言い換えると
データベースに対する「あれやれ、これやれ」の命令をひとつにまとめて保存したもの
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・データベース
・Oracle
・ストアドプロシージャ
・ストアドファンクション
について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
データベースは「データを入れておく箱」です。
突っ込んで考えると混乱するかもしれません。
何となくのフィーリングで理解してください。
Oracleは「大規模システムで使われることが多いデータベース」です。
データ件数が多かったり、たくさんのアクセスがあったり、お仕事がいっぱいな大規模システムでよく使われます。
ストアドプロシージャとストアドファンクションは、データベースに対する「あれやれ、これやれ」な命令を1つにまとめて保存したものです。
データベース世界における関数だと思ってください。
ストアドプロシージャとストアドファンクションの違いは、戻り値(関数から出てくるもの)の有無です。
戻り値が無いのがストアドプロシージャです。
戻り値が有るのがストアドファンクションになります。
以上を踏まえて
Oracleさんで使われる表現で、ストアドプロシージャとかストアドファンクションを指す用語
が「ストアドサブプログラム」です。
「ストアド」と「サブプログラム」間に点が入って「ストアド・サブプログラム」と表記するのが正式っぽいですが、そこら辺はゆるく捉えてください。
ストアドサブプログラムについて、Oracleさんの公式サイトには以下のように書かれていました。
ストアド・サブプログラムについて
サブプログラムは、特定の問題を解決したり、関連する一連のタスクを実行するSQL文およびPL/SQL文で構成されているPL/SQLユニットです。サブプログラムはパラメータを持つことができ、値は起動元から提供されます。サブプログラムは、プロシージャまたはファンクションです。通常、プロシージャはアクションを実行するために使用し、ファンクションは計算を行って値を戻すために使用します。
ストアド・サブプログラムは、データベースに格納されたサブプログラムです。ストアド・サブプログラムは、データベースに格納されているため、多様なデータベース・アプリケーションのビルディング・ブロックとして使用できます。別のサブプログラムまたは無名ブロック内で宣言されたサブプログラムは、ネストされたサブプログラムまたはローカル・サブプログラムと呼ばれます。宣言されたサブプログラムまたはブロックの外部から呼び出すことはできません。無名ブロックとは、データベースに格納されていないブロックです。
なんか難しそうなことがいっぱい書いてありますが、ポイントは
サブプログラムは、プロシージャまたはファンクションです。
と
ストアド・サブプログラムは、データベースに格納されたサブプログラムです。
の部分です。
この2つを合体させると
ストアド・サブプログラムは、データベースに格納されたプロシージャまたはファンクションです。
に なります。
「データベースに格納されたプロシージャ」はストアドプロシージャです。
「データベースに格納されたファンクション」はストアドファンクションです。
これを先ほどの文章に当てはめると
ストアド・サブプログラムは、ストアドプロシージャまたはストアドファンクションです。
に なります。
ふむ。
この文章でも、ストアド・サブプログラムはストアドプロシージャとかストアドファンクションのことだと説明されていますね。
以上でストアドサブプログラム自体の説明は終わりです。
ここまで説明を書いておきながらなんですが、実は私、お仕事の現場において「ストアドサブプログラム」という表現を聞いたことがありません。
大体みんな「ストアドプロシージャ」や「ストアドファンクション」と言っています。
ワイルドな人になると、ストアドファンクションも含めて「ストアドプロシージャ」と表現していたりしますよ。
一言でまとめるよ
まぁ「ストアドサブプログラム」って単語が出てきたら「ストアドプロシージャとかストアドファンクションのことなんだな~」と お考えください。
おまけ
■訳してみるよ
「stored(ストアド)」は「store(ストア)」+「ed」です。
「store(ストア)」の意味は「お店」とか「蓄え」とか「貯蔵」とか「蓄える」とか「保管する」とか「保存する」とか「格納する」とかです。
「ed」という接尾辞が付くと「~された」的な意味になります。
「sub(サブ)」という接頭辞が付くと「~の下」や「副~」的な意味になります。
「program(プログラム)」の意味は「計画」とか「演目」とか「(コンピュータの)プログラム」とかです。
何となく くっつけると
保存された副プログラム
となります。






