16.20 - ストアド プロシージャでの制約事項 - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL ストアド プロシージャおよび埋め込みSQL

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1148-162K-JPN

ストアド プロシージャの本体のサイズは、6.4 MBまでに制限されています。ただし、ストアド プロシージャのオブジェクト コード(コンパイル済みのストアド プロシージャ)のサイズには、制限はありません。

ストアド プロシージャ内のSQL文が大きくて複雑な場合は、構文解析プログラムの制限が適用されます。

反復も含めた入れ子のCALL文の数は、15を超えてはなりません。

プロシージャ内のパラメータ数は、256を超えてはなりません。

複数のデータベースにまたがってストアド プロシージャの名前を変更することはできません。

ANSIトランザクション モードで作成されたストアド プロシージャをTeradataトランザクション モードで実行したり、その逆を行なうことはできません。ただし、REPLACE PROCEDUREを使用して新しいセッションで再作成した後であれば、そのストアド プロシージャを実行することは可能です。

ストアド プロシージャは、作成時のプラットフォームと実行時のプラットフォームが異なると実行できません。ただし、この制約もまた、ALTER PROCEDURE文を使用してストアド プロシージャを再コンパイルすれば対処できます。

マクロ内の唯一の文がストアド プロシージャである場合、マクロからプロシージャを実行できます。

ストアド プロシージャは以下をサポートしません。
  • ストアド プロシージャ内のEXPLAIN修飾子とUSINGリクエスト修飾子
  • EXECUTEマクロ文
  • ストアド プロシージャ内のWITH句
ストアド プロシージャおよびマクロは、以下のクエリー ロギング文をサポートしません。
  • BEGIN QUERY LOGGING
  • END QUERY LOGGING
  • FLUSH QUERY LOGGING
  • REPLACE QUERY LOGGING

特定の日付形式で作成されたストアド プロシージャでは、実行セッションに設定された日付形式に関係なく、常に同じ日時の形式が表示されます。

ストアド プロシージャ内では、キュー テーブル形式のCREATE TABLEを実行できません。その他の形式のCREATE TABLE文はすべて有効です。

行レベル セキュリティ(RLS)管理のために、ストアド プロシージャにDDL文とDCL文を定義することはできません。RLSには、セキュリティ ポリシー、データ重要度分類、 およびユーザーに割り当てられているセキュリティ クレデンシャルに基づいてデータ アクセスを制御する機能が備わっています。ユーザーに上書き権限がない場合には、サポートされているRLS制約チェックが実行されます。

ストアド プロシージャでCURRENT_TIMEまたはCURRENT_TIMESTAMPを使用し、DBS制御汎用フィールド16 (System TimeZone Hour)および17 (System TimeZone Minute)を手動で変更した場合には、ストアド プロシージャを再コンパイルする必要があります。タイムゾーンを自動的に変更するためにTimeZoneStringをtdlocaledefに設定する必要はありません。

関連トピック

以下に関する詳細な情報
  • REPLACE PROCEDUREまたはALTER PROCEDUREについては、<Teradata Vantage™ SQLデータ定義言語の構文規則および例、B035-1144>を参照してください。
  • <Teradata Vantage™ SQLデータ操作言語、B035-1146>の「CREATE TABLE(キュー テーブル形式)」