[外部プロシージャ]この文は、ネイティブ関数または外部関数へのインタフェースを作成するために使用します。文を参照してください。外部関数またはネイティブ関数を呼び出す永続的なストアド関数の作成には、さまざまなプログラミング言語を使用できます。パラメータ名は、カラム名など他のデータベース識別子に対するルールに従って付けてください。データ型にする必要があります。データ型を参照してください。プレフィクスとして付けることができます。このパラメータは、ファンクションに値を与える式です。関数を実行するときに、すべてのパラメータを指定する必要はありません。文の中にデフォルト値がある場合、不明のパラメータにデフォルト値を割り当てます。関数の実行時に、引数が指定されておらず、デフォルトも設定されていない場合には、エラーが発生します。指定すると、新しい関数が作成されるか、同じ名前の既存の関数が置き換えられます。この句によって、関数の定義は変更されますが、既存のパーミッションは保持されます。関数ではサポートされていませんので、注意してください。この句は、関数が決定的か非決定的かを示すために使用します。宣言された関数は、同じパラメータ・セットで呼び出されるたび、同じ値を返します。宣言された関数は、同じパラメータ・セットに対して同じ値を返すとはかぎりません。して宣言された関数は、クエリで呼び出されるたびに再評価されます。特定のパラメータ・セットに対して関数が返す結果が変化するとわかっている場合は、この句を使用してください。して宣言してください。して宣言してください。して関数が実行されるかどうかを定義します。外部呼び出しの場合、この句は、外部環境での修飾されていないオブジェクト参照に対して所有者のコンテキストを確立します。指定されている場合、関数を呼び出すユーザごとに注釈を行う必要があるため、メモリ使用量が増えます。指定されている場合は、呼び出し側としても名前の決定が行われます。該当する所有者で修飾する場合は注意が必要です。次の関数を作成するとします。存在しない場合、テーブル・ルックアップ・エラーが生じます。代わりにこのテーブルが使用されます。プログラミング言語で記述されたネイティブ関数へのインタフェースを定義します。ネイティブ関数は、データベース・サーバによってそのアドレス領域にロードされます。名にはファイル拡張子を付けることができます。拡張子がない場合、ライブラリに対するプラットフォーム固有のデフォルトのファイル拡張子が追加されます。次に、正式な例を示します。句を、プラットフォーム固有のデフォルト値を使用して簡単に記述すると、次のようになります。'mystring@mylib';呼び出されると、関数を含むライブラリがデータベース・サーバのアドレス領域にロードされます。ネイティブ関数は、サーバの一部として実行されます。この場合、関数が原因で障害が発生すると、データベース・サーバは終了されます。属性を使用することをおすすめします。関数が原因で外部環境に障害が発生しても、データベース・サーバは実行し続けます。ネイティブ・ライブラリ呼び出しの詳細については、プロシージャからの外部ライブラリの呼び出しを参照してください。属性が指定されると、その関数を含むライブラリが外部プロセスによってロードされ、外部関数がその外部プロセスの一部として実行されます。この場合、関数が原因で障害が発生しても、データベース・サーバは実行し続けます。次に、関数定義の例を示します。外部環境を参照してください。ストアド・プロシージャまたは関数と同じです。次に、関数定義の例を示します。外部環境を参照してください。ストアド・プロシージャまたは関数と同じです。次に、関数定義の例を示します。外部環境を参照してください。ストアド・プロシージャまたは関数と同じです。次に、関数定義の例を示します。外部環境を参照してください。ストアド・プロシージャまたは関数と同じです。次に、関数定義の例を示します。外部環境を参照してください。文はデータベースに関数を作成します。権限があるユーザは、所有者を指定することによって他のユーザの関数を作成できます。式の一部として呼び出されます。複数の関数からテンポラリ・テーブルを参照する場合、テンポラリ・テーブル定義が矛盾していたり、テーブルを参照する文がキャッシュされていたりすると、問題が発生する可能性があります。プロシージャ内でのテンポラリ・テーブルの参照を参照してください。