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呼び出しプレースホルダーでなければなりません。