ストアドプロシージャの呼び出し
CallableStatement オブジェクトを使用して、パラメータ化されたストアドプロシージャ呼び出しを実行します。Statement オブジェクトを使用して、EXEC 構文のSQL ステートメントとしてストアドプロシージャを実行します。
CallableStatement オブジェクトの使用
CallableStatement クラスの一般的な実行メソッドを使用して、ストアドプロシージャをパラメータ化されたクエリとして実行できます。
ストアドプロシージャの結果を返すには、getResultSet を呼び出します。更新された行の数を返すには、getUpdateCount を呼び出します。
次の例は、CreateAssociation ストアドプロシージャを実行する方法を示しています。
CallableStatement cstmt = conn.prepareCall("CreateAssociation");
cstmt.setString("SourceId", "http://myserver:7048/DYNAMICSNAV71/OData/Customer('01234567')");
boolean ret = cstmt.execute();
if (!ret) {
int count=cstmt.getUpdateCount();
if (count!=-1) {
System.out.println("Affected rows: "+count);
}
}
else {
ResultSet rs=cstmt.getResultSet();
while(rs.next()){
for(int i=1;i<=rs.getMetaData().getColumnCount();i++) {
System.out.println(rs.getMetaData().getColumnLabel(i) +"="+rs.getString(i));
}
}
}
Statement オブジェクトの使用
Statement クラスの実行メソッドを使用して、ストアドプロシージャをSQL ステートメントとして実行できます。
ストアドプロシージャの結果を返すには、getResultSet を呼び出します。更新された行の数を返すには、getUpdateCount を呼び出します。
次の例は、CreateAssociation ストアドプロシージャを実行する方法を示しています。 (See EXECUTE ステートメント for more on the syntax.)
Statement stmt = conn.createStatement();
boolean ret = stmt.execute("EXEC CreateAssociation SourceId = 'http://myserver:7048/DYNAMICSNAV71/OData/Customer('01234567')'");
if (!ret) {
int count=stmt.getUpdateCount();
if (count!=-1) {
System.out.println("Affected rows: "+count);
}
}
else {
ResultSet rs=stmt.getResultSet();
while(rs.next()) {
for(int i=1;i<=rs.getMetaData().getColumnCount();i++) {
System.out.println(rs.getMetaData().getColumnLabel(i) +"="+rs.getString(i));
}
}
}