例: ソース キャストのみ
以下に、euroというUDTに対してソース キャストを実行して返されるレポートの例を示します。
HELP CAST SYSUDTLIB.euro SOURCE; Source Target Cast Routine As Assignment --------------------------------------------------------------------- euro DECIMAL(10,2) System YES euro us_dollar EurotoUS NO
例: ターゲット キャストのみ
以下に、euroというUDTに対して次のターゲット キャストを実行して返されるレポートの例を示します。
HELP CAST SYSUDTLIB.euro TARGET; Source Target Cast Routine As Assignment ---------------------------------------------------------------------- DECIMAL(10,2) euro System YES us_dollar euro UstoEuro YES
例: 複数のキャスト対を持つUDTに対する全キャスト
次の例は、オプションを指定せずに実行したHELP CAST euroの出力を示しています。
HELP CAST euro; Source Target Cast Routine As Assignment ---------------------------------------------------------------------- euro DECIMAL(10,2) System YES DECIMAL(10,2) euro System YES us_dollar euro UstoEuro YES euro us_dollar EurotoUS NO
このレポートについては、以下の点に注意が必要です。
- このUDTには2つのキャスト対(euro:DECIMALとeuro:us_dollar)があるので、レポートは4行になります。
- euro:DECIMALのキャスト対はシステム生成でしたが(どちらのキャスト ルーチンにもSystemという名前が付いている)、euro:us_dollarのキャスト対はユーザー定義でした。
- euro:us_dollarのキャストの定義にAS ASSIGNMENTオプションが指定されていないため、このキャストの暗黙キャストはありません。
例: 1組のキャスト対を持つUDTに対する全キャスト
以下に、addressというUDTに対してソース キャストとターゲット キャストの両方を実行して返されるレポートの例を示します。
HELP CAST address; Source Target Cast Routine As Assignment ---------------------------------------------------------------------- address VARCHAR(80) address_2_char YES VARCHAR(80) address char_2_address YES
このレポートについては、以下の点に注意が必要です。
- addressからVARCHAR(80)へのキャストと、VARCHAR(80)からaddressへのキャストは、相互に補完関係にあります。
- いずれのキャストもユーザー定義のルーチンです。どちらの名前にもSystemが付いていないからです。
- このUDTには1組のキャストのみが定義されていますが、そのどちらにもSystemという名前が付いていないので、このUDTはおそらくSTRUCTURED型であると思われます。
STRUCTURED型へのキャストはシステム生成ではなく、システムではDISTINCT型に対してデフォルトのキャストを生成します。DISTINCT型UDTに対するシステム生成のキャストを削除したり、それをユーザー定義のキャストで置き換えることも可能なので、この例で報告されているキャストがSTRUCTURED型UDTに対するものであると断定することはできません。「CREATE CASTおよびREPLACE CAST」を参照してください。