例: SQL PREPARE文を使用した動的SQLを含むプロシージャの作成 - Teradata Database - Teradata Vantage NewSQL Engine - 例: SQL PREPARE文を使用した動的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

次のCREATE PROCEDUREリクエストは、PREPARE文を使用して動的SQLを含むプロシージャを作成します。

     CREATE PROCEDURE abc (IN data1v VARCHAR(10), 
                           IN data2v VARCHAR(10))
        DYNAMIC RESULT SETS 1
       BEGIN
         DECLARE sql_stmt1 VARCHAR(100);
         DECLARE sales DECIMAL(8,2);
         DECLARE item INTEGER;
         DECLARE cstmt CURSOR WITH RETURN FOR stmt1;
         SET sql_stmt1 = 'SELECT  T1.item, T1.sales FROM T1 WHERE'
               data1v | '= store_name AND '   | data2v | '= region;';
         PREPARE stmt1 FROM sql_stmt1;
         OPEN cstmt;
         FETCH NEXT FROM cstmt INTO item, sales;
       END;

また、PREPAREは、次のプロシージャ コード例にあるように、パラメータ マーカーを使用して以下のように作成可能です。

         SET sql_stmt1 = 'SELECT  t1.item, t1.sales FROM t1 WHERE ?' 
                         '= store_name AND ? = region;';
         PREPARE stmt1 FROM sql_stmt1;
         OPEN cstmt USING data1v, data2v;
         FETCH NEXT FROM cstmt INTO item, sales;