17.00 - 17.05 - Unpack構文要素 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - Advanced SQL Engine分析関数

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Release Date
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1206-170K-JPN
Language
日本語 (日本)
TargetColumn
パック済みデータを含む入力列の名前を指定します。
OutputColumns
出力列に与える名前を指定します。指定する順序は、対応する仮想列がtarget_columnに表示される順序です。名前はTeradata Vantage™ - SQLの基本、B035-1141で定義された有効なオブジェクト名でなければなりません。
指定する出力列名の数が仮想入力列の数よりも少ない場合、この関数は余分な仮想入力列を無視します。つまり、パック済みデータにx+ yの仮想列が含まれており、OutputColumns構文要素にxの出力列名が指定される場合、この関数は最初のxの仮想列に名前を割り当て、残りのyの仮想列を無視します。
OutputDataTypes
アンパック済み出力列のデータ型を指定します。サポート対象のデータ型はVARCHAR、INTEGER、DOUBLE PRECISION、TIME、DATE、TIMESTAMPです。
OutputDataTypesが値を1つだけ指定し、OutputColumnsが複数の列を指定する場合、指定された値はすべてのoutput_columnに適用されます。
OutputDataTypesが複数の値を指定する場合は、output_columnごとに値の指定が必要です。n番目のdatatypen番目のoutput_columnに対応します。
この関数は、VARCHAR列を16列のみ出力できます。
Delimiter
[オプション] パックされたデータの仮想列を分離する区切り記号を正規化形式C (NFC)の単一のUnicode文字で指定します。delimiterは大文字と小文字を区別します。
この構文要素とColumnLength構文要素の両方を指定しないでください。仮想列が区切り記号で区切られている場合は、この構文要素で区切り記号を指定します。それ以外の場合は、ColumnLength構文要素を指定します。
デフォルト: ','(カンマ)
ColumnLength
[オプション]仮想列の長さを指定します。このため、この構文要素を使用するには、仮想列ごとの長さを把握しておく必要があります。
ColumnLengthが値を1つだけ指定し、OutputColumnsが複数の列を指定する場合、指定された値がすべてのoutput_columnに適用されます。
ColumnLengthが複数の値を指定する場合は、output_columnごとに値の指定が必要です。n番目のdatatypen番目のoutput_columnに対応します。ただし、最後のoutput_columnはアスタリスク(*)にすることができ、これは残りのデータを含んでいる単一の仮想列を表わします。例えば、最初の3つの仮想列の長さがそれぞれ2、1、3で、残りすべてのデータが4番目の仮想列に属する場合、ColumnLength ('2', '1', '3', *)を指定できます。
この構文要素とDelimiter構文要素の両方を指定しないでください。
Regex
[オプション]パック済みデータの行を記述する正規表現を指定し、関数がデータ値を検索できるようにします。
パック済みデータの行には仮想列ごとのデータ値が含まれますが、その行には他の情報(仮想列名など)も含まれる場合があります。regular_expressionでは、各データ値は括弧で囲みます。
例えば、パック済みデータに2つの仮想列「age」と「sex」があり、パック済みデータの1行がage:34,sex:maleとします。その行を記述するregular_expression'.*:(.*)'です。'.*:'は仮想列の名前「age」と「sex」と一致し、'(.*)'は値「34」と「male」と一致します。
regular_expressionで複数のデータ グループを表わすには、括弧の複数ペアを使用します。括弧なしでは、regular_expressionの最後のデータ グループはデータ値を表わします(他のデータ グループは仮想列名または不要なデータと見なされます)。別のデータ グループがデータ値を表わす場合、RegexSet構文要素でそのグループ番号を指定します。
デフォルト: '(.*)'、文字列全体と一致します(区切り記号があればその間の文字列)。上記のサンプル行に適用すると、デフォルトのregular_expressionによって、関数から'age:34'と'sex:male'がデータ値として返されます。
RegexSet
[オプション]仮想列のデータ値を表わすregular_expressionのデータ グループの序数を指定します。
デフォルトの動作: regular_expressionの最後のデータ グループはデータ値を表わします。例えば、regular_expression'([a-zA-Z]*):(.*)'であるとします。group_numberが'1'の場合、'([a-zA-Z]*)'はデータ値を表わします。group_numberが'2'の場合、'(.*)'はデータ値を表わします。
最大値: 30
IgnoreInvalid
[オプション]無効なデータを含む行を関数が無視するかどうかを指定します。
仮想列の項目の末尾に特殊文字が含まれている場合、IgnoreInvalidが期待どおりに動作しない可能性があります。Unpackの例: 末尾に特殊文字を持つIgnoreInvalid ('true')を参照してください。
デフォルト: 'false'(無効なデータを含む行が見つかると関数は機能しません。)