すべてのプロダクト
Search
ドキュメントセンター

PolarDB:サブプログラム-サブプロシージャとサブ関数

最終更新日:Dec 17, 2024

SPL手順および関数プログラムの能力および機能は、SPLコードをサブ手順およびサブ関数に編成することによって、十分に構造化され保守可能なプログラムを構築するために有利な方法で使用することができる。

同じSPLコードは、SPLプログラム内のサブプロシージャおよびサブ機能を宣言することによって、比較的大きなSPLプログラム内の異なる位置から複数回呼び出すことができる。

サブプロシージャとサブ関数には次の特性があります。

  • サブプロシージャおよびサブ関数の構文、構造、および機能は、スタンドアロンのプロシージャおよび関数と実質的に同じです。 主な違いは、サブプログラムを宣言するためにCREATE PROCEDUREまたはCREATEFUNCTIONの代わりにキーワードPROCEDUREまたはFUNCTIONを使用することです。

  • サブプロシージャとサブ関数は、それ自体で宣言された識別子 (つまり、変数、カーソル、型、およびその他のサブプログラム) を分離します。 すなわち、これらの識別子は、上位親レベルのSPLプログラムまたはサブプロシージャまたはサブ機能の外部のサブプログラムからアクセスまたは変更することができない。 これにより、サブプロシージャとサブファンクションの結果が信頼性と予測可能になります。

  • サブプロシージャおよびサブ関数の宣言セクションには、独自のサブプロシージャおよびサブ関数を含めることができます。 したがって、サブプログラムのマルチレベル階層は、スタンドアロンプログラムに存在することができる。 階層内で、サブプログラムは、上位レベルの親サブプログラムの識別子にアクセスし、上位レベルの親サブプログラムを呼び出すこともできる。 しかし、階層内の下位レベルの子サブプログラムに対しては、識別子への同じアクセスおよび呼び出しを行うことはできない。

サブプロシージャおよびサブ関数は、次のいずれかのタイプのSPLプログラム内から宣言および呼び出すことができます。

  • スタンドアロンのプロシージャと関数

  • 匿名ブロック

  • トリガー

  • パッケージ

  • オブジェクト型ボディのプロシージャと関数メソッド

  • 上記のプログラム内で宣言されたサブプロシージャおよびサブ関数

サブプロシージャとサブ関数の構造とアクセスに関するルールについては、次のトピックで詳しく説明します。