指定した関数を呼び出します。
関数呼出し::=〔認可識別子.〕ルーチン識別子(〔引数〔,引数〕…〕) |
呼び出す関数の認可識別子を指定します。
パブリック関数を呼び出す場合は,認可識別子にPUBLICを指定します。
呼び出す関数のルーチン識別子を指定します。
表2-103 関数呼出しの指定内容と,呼び出す関数の決定規則
関数呼出しの指定内容 | 呼び出す関数の決定規則 | ||
---|---|---|---|
認可識別子,ルーチン識別子,引数の数が一致する | 引数の数が0 | 認可識別子,ルーチン識別子,引数のデータ型が一致する関数を呼び出す | |
引数に抽象データ型を含まない | 引数の順序に対応したパラメタのデータ型が完全に一致※ | ||
引数の順序に対応したパラメタのデータ型が一致しない | 下記の「・抽象データ型を含まない場合」の決定規則に従う | ||
引数に抽象データ型を含む | 下記の「・抽象データ型を含む場合」の決定規則に従う | ||
認可識別子,ルーチン識別子,引数の数が一致しない | 呼び出し可能な関数が存在しないため,SQL文解析時にエラーとなる |
表2-104 既定義型の優先度
各引数のデータ型 | 優先度 |
---|---|
数データ | SMALLINT→INTEGER→DECIMAL→SMALLFLT→FLOAT |
文字データ | CHAR→VARCHAR |
各国文字データ | NCHAR→NVARCHAR |
混在文字データ | MCHAR→MVARCHAR |
長大データ,及びバイナリデータ | BINARY→BLOB |
表2-105 抽象データ型の優先度
各引数のデータ型 | 優先度 |
---|---|
抽象データ型 | 同じデータ型→スーパタイプ※ |
T1.C1の実際の値 | 呼び出し関数 |
---|---|
A型 | f(A) |
B型 | f(B) |
C型 | f(C) |
NULL値 | f(C) |
T1.C1の実際の値 | T1.C2の実際の値 | 呼び出し関数 |
---|---|---|
A型 | A型 | f(A,A) |
B型 | f(A,B) | |
NULL値 | f(A,B) | |
B型 | A型 | f(B,A) |
B型 | f(B,C) | |
NULL値 | f(B,C) | |
C型 | A型 | f(C,A) |
B型 | f(C,B) | |
NULL値 | f(C,B) | |
NULL値 | A型 | f(C,A) |
B型 | f(C,B) | |
NULL値 | f(C,B) |