17.10 - parameter_specification - 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
日本語 (日本)

プロシージャに渡す変数についての、UDTを含む括弧に入れたカンマ区切りのデータ型とパラメータ名のリスト。

プロシージャに渡すパラメータがない場合でも、右括弧と左括弧を指定する必要があります。

パラメータ リストで指定できるパラメータの最大数は、プロシージャの外部ルーチンが記述される言語によって決まります。
言語 パラメータの最大数
CまたはC++ 256
Java 255
IN
パラメータは入力専用です。INがデフォルトのパラメータ型です。パラメータ型を指定しない場合はIN型になります。
OUT
パラメータは出力専用です。
INOUT
パラメータは、入力と出力になり得ます。
プロシージャが呼び出されるときに、Vantageが、INOUTパラメータに割り当てたデータ型にデフォルトを設定することはありません。代わりに、指定した入力パラメータを含むことのできる最小のデータ型にデフォルト設定します。したがって、INOUTパラメータに返される出力パラメータをシステムがそのパラメータに設定したデフォルト データ型セットに含むことができない場合、メモリ オーバーフロー エラーが発生することがあります。
parameter_name
プロシージャに渡すパラメータ名の名前。
data_type
各パラメータに関連付けられているデータ型がそのパラメータの型です。 CおよびC++の手順については、すべてのVantageのデータ型が有効です。 Javaプロシージャの場合、GRAPHICとVARGRAPHICを除くすべてのVantageデータ型が有効です。
BYTE、CHARACTER、DECIMAL、VARCHARなど、長さやサイズを指定するデータ型では、パラメータの長さが、渡すことのできる最長ストリングになります。
文字データは、CHARACTER SET句も指定できます。
文字サーバー データ セットKANJI1を指定することはできません。指定した場合、リクエスト元にエラーが返されます。
BLOB型とCLOB型は、ロケータで表わす必要があります。ロケータの説明は、<Teradata Vantage™ - SQLデータ操作言語、B035-1146>を参照してください。システムでは、メモリ内LOBパラメータをサポートしません。非Javaプロシージャ内のLOBパラメータとLOB戻り値ごとに、AS LOCATOR句を指定する必要があります。
Javaプロシージャでは、簡単なデータ型参照のBLOBとCLOBは、暗黙的にそれぞれBLOB AS LOCATORとCLOB AS LOCATORを参照します。したがって、Javaプロシージャでは、BLOB列とCLOB列に明示的にAS LOCATORを指定することはできません。
データ型変換を必要とするLOBを外部プロシージャに渡すときは、変換を行なうためにLOBを実体化する必要があります。
VARIANT_TYPE
動的UDTをUDFに渡すためにNEW VARIANT_TYPE式を使用してプロシージャの本体内の呼び出し可能な入力パラメータに指定できるのは、VARIANT_TYPE UDT型のみです。VARIANT_TYPEをプロシージャのINパラメータ データ型として宣言することはできません。
TD_ANYTYPE
IN、OUT、またはINOUTのパラメータには、システム定義TD_ANYTYPEデータ型を指定できます。
SQLプロシージャIN、INOUT、およびOUTのパラメータがクライアント アプリケーションに返すことができるデータ型エンコーディングのリストについては、<Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL、B035-1148>を参照してください。