例: 動的SQL呼び出し文を使用した複文リクエスト持つプロシージャの作成 - Teradata Database - Teradata Vantage NewSQL Engine - 例: 動的SQL呼び出し文を使用した複文リクエスト持つプロシージャの作成、CREATE PROCEDURE (SQL形式)およびREPLACE PROCEDURE (SQL形式) SQL文

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/wkf1512081455740.ditamap
dita:ditavalPath
ja-JP/wkf1512081455740.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

DBC.SysExecSQLを使用した動的SQL呼び出しの例は次のとおりです。

    CREATE PROCEDURE salesadjust(IN item    INTEGER, 
                                 IN numsold INTEGER)
      BEGIN
        DECLARE  price DECIMAL(8,2);
        DECLARE  update1, update2 VARCHAR(128);
        SELECT item_price INTO price 
        FROM PriceTbl 
        WHERE item = pricetbl.item_no;
        SET Update1 = 'UPDATE sales_summary' ||
         'SET total_sales = total_sales + ' ||
         price ' || ' * ' || numsold || 
         'WHERE ' || item || ' = sales_summary.item_no;';
        SET update2 = 'UPDATE inventory' ||
         'SET item_no = item_no -' || numsold
         'WHERE ' || item || ' = inventory.item_no;';
       BEGIN REQUEST
        CALL dbc.SysExecSQL(update1 || update2);
       END REQUEST;
      END;