SQL Engineは、以下の操作に対してUDTから文字への暗黙的変換を実行します。
- UPDATE
- INSERT
- ストアド プロシージャ、外部ストアド プロシージャ、UDF、およびUDMへの引数の引き渡し。
- このドキュメント中の他の箇所に明記されている特定のシステム演算子と関数(DBS制御レコードのDisableUDTImplCastForSysFuncOpフィールドがTRUEに設定されていない場合に限る)。
暗黙のデータ型変換を実行するには、AS ASSIGNMENT句を指定する適切なCAST定義(使用上の注意を参照)が存在していなければなりません。
キャスト定義のターゲット文字型は、暗黙の変換のターゲット文字型と正確に一致している必要はありません。Vantageでは、CHAR、VARCHAR、またはCLOBターゲット型を指定する暗黙的なキャスト定義を使用することができます。
UDTから別々の文字型への変換の場合に複数の暗黙的なキャスト定義が存在する場合、Vantageは優先順位の最も高い文字型の暗黙的なキャスト定義を使用します。以下のリストでは、文字タイプの優先順位が最低から最高の順に並べられています。
- CHAR
- VARCHAR
- CLOB
UDTから文字への暗黙的なキャスト定義が存在しない場合、VantageはUDTから文字への暗黙的なキャスト定義に代用できるその他のキャスト定義を検索します。
| 存在する暗黙CAST定義の組み合わせ | THEN SQL Engine … | |||
|---|---|---|---|---|
| UDTから数値 | UDTからDATE | UDTからTIME | UDTからTIMESTAMP | |
| X | UDTから数値への暗黙CAST定義を使用する。 UDTから数値への暗黙のCAST定義が複数存在する場合、SQL EngineはSQLエラーを戻します。 |
|||
| X | UDTからDATEへの暗黙CAST定義を使用する。 | |||
| X | UDTからTIMEへの暗黙CAST定義を使用する。 | |||
| X | UDTからTIMESTAMPへの暗黙CAST定義を使用する。 | |||
| X | X | エラーを報告する。 | ||
| X | X | |||
| X | X | |||
| X | X | |||
| X | X | |||
| X | X | |||
| X | X | X | ||
| X | X | X | ||
| X | X | X | ||
| X | X | X | ||
| X | X | X | X | |
SQL Engineは暗黙的なキャスト定義を使用してUDTを代用データ型にキャストしてから、その代用データ型を文字型に暗黙的にキャストできるため、代用は有効です。