例: ストアド プロシージャと埋め込みSQLの入力引数 - Teradata Database - Teradata Vantage NewSQL Engine - 例: ストアド プロシージャと埋め込み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/fbo1512081269404.ditamap
dita:ditavalPath
ja-JP/fbo1512081269404.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

例: BTEQとCLIv2の入力/出力引数で定義したストアド プロシージャspSample2について考えてみましょう。引数は、以下のいずれかの書式で指定できます。

書式1:

パラメータの引数としてリテラルまたは定数式だけを指定する場合。
  • ストアド プロシージャ:
         CALL spSample2(1, 2, 3 + 4);
       
  • 埋め込みSQLを使ったCプログラム:
         EXEC SQL CALL spSample2(1, 2, 3 + 4);

書式2:

引数として渡す値がアプリケーション変数に入っている場合。
  • ストアド プロシージャ:
         SET AppVar1 = 10;
         SET AppVar2 = 30;
         SET AppVar3 = 40;
         CALL spSample2(:AppVar1, :AppVar1 + :AppVar2, CAST(:AppVar3 AS
         FORMAT 'Z,ZZ9'));
  • 埋め込みSQLを使ったCプログラム:
         AppVar1 = 10;
         AppVar2 = 30;
         AppVar3 = 40;
         EXEC SQL CALL spSample2(:AppVar1, :AppVar1 + :AppVar2,
                       CAST(:AppVar3 AS FORMAT 'Z,ZZ9'));

書式3:

引数としてアプリケーション変数(AppVar1AppVar2、およびAppVar3)の組み合わせと値/式を指定する場合。
  • ストアド プロシージャ:
         SET AppVar1 = 10;
         SET AppVar2 = 30;
         SET AppVar3 = 40;
         CALL spSample2(:AppVar1, 3 + :AppVar2, 3 + 4 + :AppVar3);
       
  • 埋め込みSQLを使ったCプログラム:
         AppVar1 = 10;
         AppVar2 = 30;
         AppVar3 = 40;
         EXEC SQL CALL spSample2(:AppVar1, 3 + :AppVar2, 3 + 4
                       + :AppVar3);

この形式のストアド プロシージャからは、出力パラメータが返されていないため、成功応答においてACTIVITY_COUNTの値は0で返されます。