以下に、in_state()というUDTに対してソース キャストとターゲット キャストの両方を実行して返されるレポートの例を示します。
HELP CAST address; Source Target Cast Routine As Assignment ---------------------------------------------------------------------- address VARCHAR(80) address_2_char YES VARCHAR(80) address char_2_address YES
このレポートについては、以下の点に注意が必要です。
- in_state()からVARCHAR(80)へのキャストと、VARCHAR(80)からin_state()へのキャストは、相互に補完関係にあります。
- いずれのキャストもユーザー定義のルーチンです。どちらにもSystemという名前が付いていないからです。
- このUDTには1組のキャストのみが定義されていますが、そのどちらにもSystemという名前が付いていないので、このUDTはおそらくSTRUCTURED型であると思われます。
STRUCTURED型に対するキャストがシステム生成であることはありえず、一方システムは常にDISTINCT型に対してデフォルトのキャストを生成します。DISTINCT型UDTに対するシステム生成のキャストを削除したり、それをユーザー定義のキャストで置き換えることも可能なので、この例で報告されているキャストがSTRUCTURED型UDTに対するものであると断定することはできません。詳細については、CREATE CASTとREPLACE CASTを参照してください。