17.05 - 例: JDBCの入力/出力引数 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
2021年1月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-175K-JPN
Language
日本語 (日本)

ストアド プロシージャspSample2について考えてみましょう。このストアド プロシージャは、以下のJDBC API呼び出しによって実行できます。

     CallableStatement cstmt = con.prepareCall("CALL spSample2(p1, ?,      ?)");
     ResultSet rs = cstmt.executeQuery();

第2行(ResultSet rs = ...)については、次の代替呼び出しも使えます。

     boolean bool = cstmt.execute();

または

     int count = cstmt.executeUpdate();

疑問符は引数を示しており、prepareCall()リクエストのINまたはINOUTパラメータのプレースホルダーの役割を果たします。疑問符のプレースホルダー引数は、CallableStatement.setXXX() JDBC API呼び出しを使ってアプリケーションのローカル変数および定数にバインドしなければなりません。

あるいは、IN引数またはINOUT引数を値式にすることもできます。

INOUT引数とOUT引数は、以下のJDBC API呼び出しを使って登録する必要があります。

     CallableStatement.registerOutParameter()

実行後、CallableStatement.getXXX() JDBC API呼び出しを使って、応答からパラメータ値を取り出すことができます。