SQL 解説書

メソッドの呼び出し

 
method-invocation
 
|--subject-expression..method-name--+--------------------------------+->
                                    '-(--+--------------------+---)--'
                                         |  .-,------------.  |
                                         |  V              |  |
                                         '----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()

メソッド呼び出しのヌル・サブジェクトは、次のように扱われます。

  1. システム生成の変更メソッドがヌル・サブジェクトで呼び出される場合、 エラーになります (SQLSTATE 2202D)。
  2. システム生成の変更メソッド以外のメソッドがヌル・サブジェクトで呼び出される場合、 そのメソッドは実行されず、結果はヌルになります。 この規則は、SELF AS RESULT を指定したユーザー定義メソッドにも当てはまります。

データベース・オブジェクト (パッケージ、視点、またはトリガーなど) を作成する場合、 それぞれのメソッド呼び出しのための最適な方法は、 メソッド解決で指定した規則を使用して見つけられます。
注:
  • 定義した WITH FUNCTION ACCESS タイプのメソッドは、 通常の関数表記を使用して呼び出すこともできます。 関数解決では、候補となる関数として、すべての関数だけでなく、 関数アクセスのあるメソッドも考慮します。 ただし、メソッド呼び出しを使用して関数を呼び出すことはできません。 メソッド解決では、候補となるメソッドとして、 すべてのメソッドを考慮しますが、関数については考慮しません。 適切な関数またはメソッドの解決に失敗すると、エラーになります (SQLSTATE 42884)。

例:


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]