次のようなFind_Text関数群と、CREATE FUNCTION文のSPECIFIC句で指定された対応する特定名があるとします。
関数の名前とパラメータ | 特定名 |
---|---|
Find_Text(SearchedString CHAR(40), Pattern VARCHAR(10)) | F1 |
Find_Text(SearchedString VARCHAR(10), Pattern CHAR(20)) | F2 |
Find_Text(SearchedString CHAR(20), Pattern CHAR(10)) | F3 |
関数呼び出しの引数型と正確に一致するパラメータ型の関数がない場合に、Teradata Databaseが呼び出す関数は、次のテーブルのようになります。
最初の引数のデータ型 | 第2の引数のデータ型 | Teradata Databaseの動作 |
---|---|---|
VARCHAR(40) | CHAR(50) | 特定名がF2の関数を呼び出します。 最初の引数のテストの後、F2がリストに残ります。 第2の引数のテストの後、F2が残ります(厳密一致)。 文字列の長さは考慮されないため、切り捨てが発生する可能性があります。 |
VARCHAR(80) | VARCHAR(20) | エラーが返されます。 最初の引数のテストの後、F2がリストに残ります。 第2の引数のテストの後、リストには何も残りません。関数にVARCHARを要求したが、唯一の選択肢はCHARであり、その優先順位がVARCHARよりも低いため、F2は選択されません。 VARCHAR引数で関数が呼び出されるようにしたい場合は、CHARをパラメータ型として使用しないようにしてください。 |