データベース内でユーザー インストールのスクリプト、またはLINUXコマンドを実行します。
ANSI準拠
この文は、ANSI SQL:2011規格に対するTeradata拡張機能です。
構文
SCRIPT ( [ on_clause ] SCRIPT COMMAND ( runtime_literal_command ) [ RETURNS ( { '*' | 'column_name data_type_specification' } [,...] ) ] [ DELIMITER ('delimiter_character') ] [ CHARSET ( { 'UTF-16' | 'LATIN' } ) ] [ QUOTECHAR ('quote_character') ] [ AUTH ('authorization_name') ] [ [AS] alias_name [( column_name [,...] )] ] )
構文要素
- on_clause
ON { table_name | view_name | ( query_expression ) } [ AS correlation_name ] [ hash_or_partition_by [ order_by | local_order_by ] ]
- hash_or_partition_by
{ { HASH | PARTITION } BY [ order_by | local_order_by ][,...] | PARTITION BY ANY }
- order_by
ORDER BY order_by_spec [,...]
- local_order_by
ORDER BY local_order_by_spec [,...]
- order_by_spec
{ column_name | column_position | sort_expression } [ ASC | DESC ] [ NULLS { FIRST | LAST } ]
- local_order_by_spec
localOrderByList [ ASC | DESC ] [ NULLS { FIRST | LAST } ]
- ON clause
- SCRIPT関数にはON句を1つだけ含めることができます(単一入力)。ON句はオプションなし、または以下のオプションで指定することができます。
- HASH BY
- PARTITION BY
- PARTITION BY ANY
- オプションのORDER BY句またはLOCAL ORDER BY句
- SCRIPT_COMMAND
- 実行するスクリプト。SCRIPT_COMMANDは必須キーワードです。
- runtime_literal_command
- SCRIPT_COMMANDへのパラメータは、その後にスクリプト名、その他の入力、またはオプションの有効なLINUXコマンドが続く実行可能名にすることができます。
- RETURNS
- オプションの句。
- *
- SCRIPT関数によって入力テーブルのすべての列が返されるように指定します。
- column_name data_type_specification
- 引用符内の情報。data_type_specificationは、サイズ、文字データ型などの適切な修飾子を持つ任意のTeradataデータ型です。
- DELIMITER
- オプションの句。delimiter_characterは、デフォルトでタブです。区切り文字は、入力文字列と出力文字列の列値を区切るために使用されます。
- CHARSET
- オプションの句。デフォルト値はLATINです。UTF-16を指定すると、 SCRIPTはユーザー インストールのスクリプトに渡されるデータとそこから渡されるデータのすべてにUTF-16文字エンコーディングを使用します。これはCHARまたはVARCHARをCHARACTER SET UNICODEとともに使用する場合に推奨されます。
- QUOTECHAR
スクリプトへのすべての入力と出力が指定した文字を使用して引用されるように強制するオプションのパラメータ。
QUOTECHARを使用すると、データベースでNULLフィールドと空のVARCHARを区別できるようになります。長さがゼロのVARCHARは引用されますが、NULLフィールドは引用されません。
データに見つかった文字は、2番目の引用符文字によってエスケープされます。 例えば、
He said, "Hey there!"
二重引用符を含むQUOTECHAR("")の場合は、次のようになります。
"He said, ""Hey there!"""
- AUTH
オペレーティング システムのユーザーを許可オブジェクトを介してスクリプトにバインドするオプションの句。
オプションのAUTH句をSCRIPTテーブル演算子と使用して、許可オブジェクトの完全修飾名を一重引用符で指定します。AUTH句は1つのみ指定できます。
データベース名を指定しない場合、名前は現在のユーザーまたはデータベースを使用して完全修飾します。
スクリプト クエリーを実行するデータベース ユーザーには、次のEXECUTE権限が必要です。- 指定された許可オブジェクトのEXECUTE権限。
- td_sysfnlib.script上のEXECUTE FUNCTION。
データベース ユーザーは複数の許可と関連付けられる場合がありますが、使用する許可はAUTH句で指定されるものです。
許可における実行権限をロールに付与し、そのロールを使用してユーザー権限を割り当てることができます。許可オブジェクトはそれを作成するデータベース ユーザーに属しますが、そのデータベース ユーザーの所有者にも暗黙的に属します。所有者は、データベース ユーザーに代わり、許可オブジェクトにおけるEXECUTE権限をGRANTまたはREVOKEできます。
DEFAULT_AUTHと呼ばれる許可オブジェクトは、SYSUIFデータベースに対して作成されます。この許可を使用して、どのデータベース ユーザーがスクリプトをデフォルトのオペレーティング システム ユーザーtdatuserの下で実行できるかを制御します。この許可オブジェクトは、AUTH句でnoneを指定した場合に使用されます。正常に実行できるように、ユーザーにはSYSUIF.DEFAULT_AUTHオブジェクトに対して付与されるEXECUTE権限が必要です。
詳細については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。
- AS
- alias_nameまたはcolumn_nameの前にオプションで指定するオプション。
- alias_name
- table_name.column_name_aliasによって参照されるテーブルの別名。式の命名にも使用されます。
- table_name
- 参照されるテーブルの名前。
- view_name
- 参照されるビューの名前。
- query_expression
- 参照されるビューの名前。
- AS correlation_name
- ON句入力テーブルのオプションの別名。
- HASH BY
- ON句の行はcolumn_specificationのハッシュ値に基づいてAMPに再配布されます。次に、ユーザー インストールのスクリプト ファイルが各AMPで一度実行されます。
- PARTITION BY or PARTITION BY ANY
column_specificationの中に、または列指定のカンマ区切りのリストで、関数の実行対象のグループを指定(複数も可)。
PARTITION BYは任意指定です。PARTITION BY句を指定しない場合は、FROM句から送られる結果セット全体が単一のグループまたはパーティションになります。
PARTITION BY句は、ウィンドウ パーティション句と呼ばれることもあります。
- ORDER BY
- value_expressionの中の、グループまたはパーティション内の値のソート順序。
- LOCAL ORDER BY
- テーブル関数への入力に備えて、修飾された行を各AMPに対して順序付けします。
- COLUMN SPECIFICATION
- 以下の2つの式から成るSQL式。
- column_name
- column_position
- column_name, column_position
- 結合インデックス定義内の列の名前、またはその序数位置。
- sort_expression
- SQL式がソートされる順序。
- ASC
- 結果が昇順でソートされます。
- DESC
- 結果が降順でソートされます。
- NULLS FIRST
- NULL結果が最初にリストされることを指定します。
- NULLS LAST
- NULL結果が最後にリストされることを指定します。