パラメータの型を表示して確認するには、SQL SHOW PROCEDURE文を使用できます。
CREATE PROCEDURE spSample2(OUT p1 INTEGER, INOUT p2 INTEGER, IN p3 INTEGER) BEGIN SET p1 = p3; SET p2 = p2 * p3; END;
呼び出し引数は、以下のいずれかの書式で指定できます。
書式1:
CALL spSample2(p1, 20, 3);
パラメータ名p1は、OUTパラメータのプレースホルダーなので引数として指定しています。20と3という値は、INOUTパラメータとINパラメータ、つまりp2とp3の引数として渡されます。
このCALL文からは、以下のような応答が返されます。
p1 p2 ----------- ----------- 3 60
書式2:
CALL spSample2(p1, 20 * 2, 30 + 40);
(20 * 2)および(30 + 40)という式は、INOUTパラメータとINパラメータ、つまりp2とp3の引数として渡されます。
このCALL文からは、以下のような応答が返されます。
p1 p2 ----------- ----------- 70 2800
書式3:
CALL spSample2(CAST(CAST(p1 AS CHARACTER(10)) AS TITLE 'OutputValue'), CAST(20 AS SMALLINT), 30 + 40);
CAST(20 AS SMALLINT)および(30 + 40)という式は、INOUTパラメータとINパラメータ、つまりp2とp3の引数として渡されます。
このCALL文からは、以下のような応答が返されます。
OutputValue 20 ----------- ---------- 70 1400
書式4:
この書式は、BTEQで使用されますが、データ ファイルからデータをインポートすることが前提になります。
USING (a INTEGER) CALL spSample1(p1, :a, 3);
3は、INパラメータであるp3の引数として渡される値です。入力データ ファイルから読み込まれる値は変数aに代入され、USING句によってINOUTパラメータであるp2の引数として渡されます。
BTEQは、Teradataプラットフォームから以下の応答を受け取ります。
p1 p2 ----------- ----------- 3 30
書式5(CALLリクエストでNAMED句とTITLE句を使った場合):
CALL spSample1(CAST (p1 AS NAMED AA TITLE 'OUT VALUE'), CAST (((20 * 2) + 3) AS TITLE 'INOUT VALUE'), 1);
応答は以下のようになります。
OUT VALUE INOUT VALUE ----------- ------------ 1 43