parameter_specification - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/ncd1596241368722.ditamap
dita:ditavalPath
ja-JP/ncd1596241368722.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage
IN
パラメータは入力専用です。INがデフォルトのパラメータ型です。パラメータ型を指定しない場合はパラメータはIN型になります。
OUT
パラメータは出力専用です。
INOUT
パラメータは入力と出力の両方になり得ます。
parameter_name
プロシージャの実行中に引数で置き換えられるパラメータまたはローカル変数の名前。
パラメータ名の最大長は、LATIN文字で30文字、Unicode文字で128文字です。オブジェクト名の長さ制限の詳細は、<Teradata Vantage™ - SQLの基本、B035-1141>を参照してください。
各プロシージャには、最大256のパラメータをカンマ区切りのリストの形で指定できます。
data_type
パラメータまたはローカル変数のデータ型は、各parameter_nameで指定される必要があります。
VARIANT_TYPE UDTをSQLプロシージャのINパラメータ データ型として指定することはできません。
動的UDTをUDFに渡すためにNEW VARIANT_TYPE式を使用してプロシージャの本体内の呼び出し可能な入力パラメータに指定できるのは、VARIANT_TYPE UDT型のみです。
プロシージャが呼び出される際、プロシージャの作成時にシステムが、INOUTパラメータに割り当てたデータ型にデフォルトを設定することはありません。代わりに、指定した入力パラメータを含むことのできる最小のデータ型にデフォルト設定します。その結果、システムにより、INOUTパラメータに返された出力パラメータをデフォルト データ型セットに含むことができない場合、メモリ オーバーフロー エラーが発生することがあります。詳細については、<Teradata Vantage™ - SQLデータ定義言語 - 詳細トピック、B035-1184>のCREATE PROCEDURE(外部形式)、および<Teradata Vantage™ - SQLデータ操作言語、B035-1146>のCALLを参照してください。
パラメータには、文字データ型の属性として、CHARACTER SETと、CASESPECIFICまたはNOT CASESPECIFICのいずれかを指定できます。
両方を指定する場合は、次の順序で指定する必要があります。
  • CHARACTER SET
KANJI1の文字サーバー データ セットを指定することはできません。作成しようとすると、Vantageはリクエストをアボートして要求元にエラーを返します。
  • CASESPECIFICまたはNOT CASESPECIFIC
NOT NULL、UPPERCASE、またはFORMATなどの他のデータ型属性は、SQLプロシージャには指定できません。
文字セットの前にキーワードDEFAULTを指定することはできません。
ローカル変数の場合、data_typeの後ろに任意の順序でCHARACTER SETおよびNOT CASESPECIFICを指定できます。
CHARACTER SETを指定しない場合、文字セットはデフォルトの、SQLプロシージャを作成またはコンパイルするユーザーの文字セットになります。
SQLプロシージャIN、INOUT、およびOUTのパラメータがクライアント アプリケーションに返すことができるデータ型エンコーディングのリストについては、<Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL、B035-1148>を参照してください。