ACTIVITY_COUNT - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/vqj1592443206677.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1148
Product Category
Software
Teradata Vantage

ACTIVITY_COUNTステータス変数は、埋め込みSQLまたはストアド プロシージャ アプリケーションのSQL DML文の影響を受けた行数を戻します。

これは、埋め込みSQLアプリケーションのSQLCAのSQLERRD配列におけるアクティビティ カウント語と同じ機能を実現します。

ANSI準拠

ACTIVITY_COUNTは、ANSI/ISO SQL:2011規格に対するTeradataの拡張機能です。

ACTIVITY_COUNTの設定

ACTIVITY_COUNTは、ストアド プロシージャまたは埋め込みSQLアプリケーションが実行を開始するときには0に初期設定されており、各実行可能SQL文の処理後の実行時に更新されます。受け取るカウントをテストするための独自のコードを作成する必要があります。

クライアント アプリケーションとサーバーの機能に応じて、アクティビティ カウントには2つの異なる制限があります。
  • 4バイト制限(2^32-1行)
  • 8バイト制限(2^64-1行)

8バイトのアクティビティ カウントを要求するようにクライアント アプリケーションをコーディングし、サーバーが8バイトのアクティビティ カウントを返すことができる場合、数値オーバーフローの警告は表示されなくなります。つまり、アクティビティ カウントは、常に実際のアクティビティ カウントになります(アクティビティ カウントのモジュロ2^32にはなりません)。ただし、8バイトのアクティビティ カウントを要求するようにクライアント アプリケーションをコーディングしない場合、またはサーバーが8バイトのアクティビティ カウントを返すことができない場合、やはり数値オーバーフローの警告が表示されます。

ACTIVITY_COUNTのテスト

影響された行数を知る必要のあるSQL文の各実行後にACTIVITY_COUNTを検査し、適切なエラー処理を確認します。

ACTIVITY_COUNT値に基づいてエラー処理を扱う自分のコードを作成する必要があります。

ACTIVITY_COUNTの使用上の制約

ストアド プロシージャまたは埋め込みSQLアプリケーション内では、次のようなACTIVITY_COUNTの使用は可能です。
  • ACTIVITY_COUNTをSET文のオペランドとして指定する。

    例えば、次の文は可能です。

    SET h1 = h1 + ACTIVITY_COUNT;
  • ACTIVITY_COUNTをSQL文の式として指定する。

    例えば、次のような文が可能です。

    INSERT INTO table_1 (column_1)
    VALUES (:ACTIVITY_COUNT);
    UPDATE table_1
    SET column_1 = column_1 + :ACTIVITY_COUNT;
次のようなACTIVITY_COUNTの使用は無効です。
  • ACTIVITY_COUNTはストアド プロシージャ内で明示的に宣言できない。
  • ACTIVITY_COUNTは値または式にSETできない。

    例えば、次の文は無効です。

    SET ACTIVITY_COUNT = h1 + h2;
  • ACTIVITY_COUNTは、SELECT文のINTO句には指定できない。

    例えば、次の文は無効です。

    SELECT column_1 INTO :ACTIVITY_COUNT FROM table_1;
  • ACTIVITY_COUNTは、ストアド プロシージャ内でCALL文のINOUTおよびOUTパラメータの代わりには指定できない。
  • クエリーのアクティビティ カウントが限界の232-1行を超える場合、システムは実際のアクティビティ カウントのモジュロ232を、次の警告メッセージとともに戻します。
    Numeric overflow has occurred internally. The number of rows returned is actual number of rows returned, modulo 2^32.

    この状況における実際のアクティビティ カウントを判別するには、次のようにして、232に、戻されるモジュロ232の値を加える必要があります。

    実際のアクティビティ カウント = returned_value + 232

    これはSQLストアド プロシージャと埋め込みSQLアプリケーションの両方に当てはまります。

    クライアント アプリケーションとサーバーの機能に応じて、アクティビティ カウントには2つの異なる制限があります。
    • 4バイト制限(2^32-1行)
    • 8バイト制限(2^64-1行)

関連情報