17.10 - HELP CASTの例 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-171K-JPN
Language
日本語 (日本)

例: ソース キャストのみ

以下に、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:DECIMALeuro: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」を参照してください。