メソッドの呼び出し

システム生成による監視および変更メソッドの両方、さらにユーザー定義メソッドも、 二重ドット演算子を使って呼び出されます。

method-invocation
構文図を読む構文図をスキップするsubject-expression..method-name (,expression)
subject-expression
ユーザー定義構造化タイプである静的結果タイプを持つ式。
method-name
修飾なしのメソッド名。 subject-expression の静的タイプまたはそのスーパータイプのいずれかに、 指定した名前を持つメソッドが入っている必要があります。
(expression,...)
括弧内に method-name の引数を指定します。 引数がないことを示すときには、括弧内を空にしておくことができます。 特定のメソッドを解決するときに、subject-expression の静的タイプに基づき、 method-name と、指定した引数の式のデータ・タイプを使用します。
メソッド呼び出しに使う二重ドット演算子は、優先順位が高い順に左から右へ列挙される挿入演算子です。 例えば、以下の 2 つの式は同じことを意味します。
   a..b..c + x..y..z
および
   ((a..b)..c) + ((x..y)..z)
メソッドにサブジェクト以外のパラメーターがない場合、括弧があってもなくても呼び出すことができます。 例えば、以下の 2 つの式は同じことを意味します。
   point1..x
   point1..x()
メソッド呼び出しの NULL サブジェクトは、次のように扱われます。
  • システム生成の変更メソッドが NULL サブジェクトで呼び出される場合、 エラーになります (SQLSTATE 2202D)。
  • システム生成の変更メソッド以外のメソッドが NULL サブジェクトで呼び出される場合、 そのメソッドは実行されず、結果は NULL になります。 この規則は、SELF AS RESULT を指定したユーザー定義メソッドにも当てはまります。

データベース・オブジェクト (パッケージ、ビュー、またはトリガーなど) を作成する場合、 それぞれのメソッド呼び出しのための最適な方法を 見つけられます。

注: 定義した WITH FUNCTION ACCESS タイプのメソッドは、 通常の関数表記を使用して呼び出すこともできます。 関数解決では、候補となる関数として、すべての関数だけでなく、 関数アクセスのあるメソッドも考慮します。 ただし、メソッド呼び出しを使用して関数を呼び出すことはできません。 メソッド解決では、候補となるメソッドとして、 すべてのメソッドを考慮しますが、関数については考慮しません。 適切な関数またはメソッドの解決に失敗すると、エラーになります (SQLSTATE 42884)。

  • 二重ドット演算子を使用して、AREA というメソッドを呼び出します。 構造化タイプ CIRCLE の列 CIRCLE_COL をもった RINGS という表が存在するとします。 また、CIRCLE タイプのために、メソッド AREA が、 AREA() RETURNS DOUBLE としてあらかじめ定義されているとします。
       SELECT CIRCLE_COL..AREA() FROM RINGS