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()
メソッド呼び出しのヌル・サブジェクトは、次のように扱われます。
- システム生成の変更メソッドがヌル・サブジェクトで呼び出される場合、
エラーになります (SQLSTATE 2202D)。
- システム生成の変更メソッド以外のメソッドがヌル・サブジェクトで呼び出される場合、
そのメソッドは実行されず、結果はヌルになります。
この規則は、SELF AS RESULT を指定したユーザー定義メソッドにも当てはまります。
データベース・オブジェクト (パッケージ、視点、またはトリガーなど) を作成する場合、
それぞれのメソッド呼び出しのための最適な方法は、
メソッド解決で指定した規則を使用して見つけられます。
注: |
- 定義した WITH FUNCTION ACCESS タイプのメソッドは、
通常の関数表記を使用して呼び出すこともできます。
関数解決では、候補となる関数として、すべての関数だけでなく、
関数アクセスのあるメソッドも考慮します。
ただし、メソッド呼び出しを使用して関数を呼び出すことはできません。
メソッド解決では、候補となるメソッドとして、
すべてのメソッドを考慮しますが、関数については考慮しません。
適切な関数またはメソッドの解決に失敗すると、エラーになります (SQLSTATE 42884)。
|
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]