組み込み関数および提供される関数 Db2
関数 とは、関数名の後に、括弧で囲まれたゼロ個以上の入力値が続いた形で示される操作です。 関数は、1 組の入力値と 1 組の結果値の間の関係を表します。 関数の入力値を引数 といいます。 組み込み関数には、「+」などの演算子関数、「AVG」などの集約関数、「SUBSTR」などのスカラー関数が含まれます。一方、 ユーザー定義関数は CREATE FUNCTION文を使用して作成され、カタログ内の Db2 に登録されます。 Db2 には、いくつかのユーザー定義関数が付属しています。
関数のタイプとしては、集約、スカラー、および表タイプがあります。 組み込み関数は、集約関数、スカラー関数、テーブル関数に分類されます。 ユーザー定義関数は、スカラ関数またはテーブル関数とすることができます。
列マスクを使用して最終結果表の列値をマスクし、関数の引数である列に列マスクが適用される場合、関数操作が発生する前に列マスクが列に適用されるため、関数の結果が異なることがあります。 例えば、列 SSN に列マスクを適用すると、集約関数 COUNT(DISTINCT SSN) の結果が変わることがあります。
DISTINCT 操作は、マスクされない列値に対して実行されます。 キーワード DISTINCT は、関数の引数ではなく、関数が適用される前に実行される演算の指定です。 DISTINCT を指定した場合、列のマスクが適用される前に、冗長な重複する値は取り除かれます。 DISTINCT キーワードを持つ集約関数の列が、非グループ化列である列マスク定義の参照列を持ち、DISTINCT 操作のターゲット列ではない場合、集約関数の結果がそれぞれ異なる場合があります。 Db2 各実行で重複する行のグループから同じ行が返されることを保証するものではないため、返された行のDISTINCT/非グループ化列の値は毎回異なる可能性があります。
OLAP仕様と組み込み関数
RANK、DENSE_RANK、および ROW_NUMBER 指定は、組み込み関数として参照されることがあります。 これらの仕様に関する詳細は、 OLAP仕様をご覧ください。
ユーザー定義関数は、 Db2
ユーザー定義関数は、CREATE FUNCTION文を使用して作成され、カタログ内の Db2 に登録される関数です。 Db2 には、いくつかのユーザー定義関数が付属しています。 例えば、以下のようなユーザー定義関数が提供されています
- 管理タスクスケジューラ機能は、管理タスクスケジューラを使用して実行が予定されているタスクに関する情報およびステータスを提供します。 管理タスク・スケジューラーを使用すると、時間ベースまたはイベント・ベースのスケジュールに従ってストアード・プロシージャー、JCL ジョブ、およびその他の管理用タスクを実行することができます。 詳細は、「管理タスクのスケジュール 」を参照してください。
BLOCKING_THREADSテーブル関数は、カタログの移行や更新と互換性のないアプリケーション、アクティビティ、 Db2 リソースを特定するのに役立ちます。これにより、移行が失敗する可能性を最小限に抑えるために、事前に適切な措置を講じることができます。 詳細については、 「オンライン移行と互換性のないアプリケーションの識別」 および 「BLOCKING_THREADS 表関数」 を参照してください。
- Db2 MQ IBM® MQ メッセージングとデータベースアプリケーションの統合を支援する機能です。 SQLステートメント内で IBM MQ メッセージングにアクセスしたり、 IBM MQ メッセージングと Db2 データベースアクセスを組み合わせたりする機能を利用できます。 使用に関する詳細については IBM MQ 機能の詳細については、有効化に関する情報を参照してください IBM MQIBM MQ ユーザー定義関数を有効にするための追加手順の関数と、 Db2 を使用した IBM MQ のプログラミング手法について説明します。
ユーザー定義関数は、それが登録済みのスキーマに存在します。 一般的に提供されるユーザー定義関数は、SYSIBM以外のスキーマを持っています。