4

多くの RDBMS は、ある種の「CURSOR」タイプをサポートしています。これらの型は、ストアド プロシージャから返されるときに最も役立ちます。Oracle での例:

TYPE t_cursor_type IS REF CURSOR;
CREATE PROCEDURE p (c OUT t_cursor_type);

JDBC を使用してこのプロシージャを呼び出す場合は、OracleTypes.CURSOR = -10「JDBC」タイプを使用する必要があります。この型は標準の一部ではなく、Java 7 の JDBC 4.1 の一部にもなりません。

JSR担当者が将来このタイプを標準に追加することを検討するかどうかを知っている人はいますか? または、他の RDBMS に同様の「ベンダー固有のタイプ」がある場合は?

4

1 に答える 1

4

REF CURSORS のサポートは、Java 8/JDBC 4.2 で追加されました。Types.REF_CURSORカーソルの戻り値の型に typeを使用します。これらは、インターフェイスを介して反復できResultSetます。例:

CallableStatement cstmt = conn.prepareCall("{callmySproc(?)}");
cstmt.registerOutParameter(1, Types.REF_CURSOR);
cstmt.executeQuery();
ResultSet cursor = cstmt.getObject(1, ResultSet.class);
while(cursor.next()) {
    System.out.println("Name = " + cursor.getString(1));
}
于 2016-05-26T22:00:18.147 に答える