ODBCとJDBCの呼び出し引数に関するルール - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/vnq1596660420420.ditamap
dita:ditavalPath
ja-JP/vnq1596660420420.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage
ODBCまたはJDBCアプリケーションからCALL文を実行する場合は、以下の追加ルールが呼び出し引数に適用されます。
  • IN引数またはINOUT引数は、以下のいずれかでなければなりません。
    • 値式。

      値式は、コロン文字が先頭に付いた識別子を備えていてはならず、 定数式でなければなりません。

    • 入力プレースホルダーとして使用する疑問符文字(?)。

      ?を指定する場合は、プロシージャを呼び出す前に、呼び出すプロシージャ内の対応するINまたはINOUTパラメータの値を、ODBCまたはJDBC固有の呼び出しを使って設定しなければなりません。

      INおよびINOUT引数の?マーカーの数、およびリクエスト メッセージ内のStatementInfoパーセルに指定されたデータ項目の数には、1対1の対応があります。StatementInfoに、OUT引数の項目は含まれません。

      例えば、以下のSQLプロシージャ定義およびCALL文を考慮してください。

           CREATE PROCEDURE sp3 (
             IN pil     INTEGER,
             INOUT pio1 INTEGER,
             OUT po1    INTEGER)
           BEGIN
             SELECT j INTO :pio1
             FROM tb11
             WHERE i=2;
             SELECT k INTO :po1
             FROM tb11
             WHERE i=2;
           END;
      
           CALL sp3 (:?, :?, :?);

      この呼び出しを実行する場合、StatementInfoパーセルには、INおよびINOUT パラメータに対してそれぞれ1つずつ、2つの項目が入ります。

  • OUT引数は、OUT呼び出しプレースホルダーでなければなりません。