例: 複文リクエストを使用するSQLプロシージャの作成 - Advanced SQL Engine - Teradata Database

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

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

次のプロシージャは、複文リクエストの文を並行して実行します。

    CREATE PROCEDURE salesadjust(IN item    INTEGER, 
                                 IN numsold INTEGER)
      BEGIN
        DECLARE price DECIMAL(8,2);
        SELECT item_price INTO price 
        FROM pricetbl 
        WHERE item = pricetbl.item_no;
        BEGIN REQUEST
          UPDATE sales_summary
          SET total_sales = total_sales + price * numsold
          WHERE item = sales_summary.item_no
          ;UPDATE inventory
          SET item_no = item_no - numsold
          WHERE item = inventory.item_no;
        END REQUEST;
      END;

上記の手順の次に以下のステップが続きます。

  1. 品目の価格がpricetblから検索されます。
  2. 総額と販売された品目の数を乗算することによって、売上げ総額を算出します。
  3. 2つの更新リクエストがAMPに対して並行して送られます。

    最初の文は、販売されたすべての品目に対して発生した現金を追跡するtotal_salesのサマリー テーブルを更新します。

    2番目の文は、その特定の品目の残りの在庫数を反映するようにinventoryを調整します。