jdbc
を使用してOracle
DBサーバーを使用してチームを構成しています。私の変更の1つでは、私は2つの異なるResultSets
を返すストアドプロシージャを呼び出しています。最初は、私の実装ではデフォルトのスクロール能力が仮定されていました。 それが失敗した後、私はインターネットでそれを調べました。Oracle DBからスクロール可能な結果セットを取得する
私がそれについて読むことができるすべては基本的に同じことを言った:適切なTYPE_SCROLL_INSENSITIVE
とCONCUR_READ_ONLY
とのprepareStatement
またはprepareCall
メソッドを使用してください。これらのどれも働かなかった。
ストアドプロシージャ私は再び2つの異なる結果セットを返し、それらは(ResultSet) rs.getObject("name")
で抽出されます。一般的な例では、ResultSetは.executeQuery
から瞬時に戻ります。 私の質問は、prepareCall
メソッドのScrollablility/Updatabilityタイプは、このようなResultSetに影響しますか?もしそうなら、どうすればそれらを入手できますか?
私は、JDBCドライバがScrollableResultSetのリクエストを低下させる可能性があることを知っています。 結果セットが劣化しているかどうかをどのように確認できますか?
注意:デフォルトではResultSetはスクロールできないのはなぜですか?ベストプラクティスとは何ですか?柔軟性の「コスト」は何ですか?
あなたのリンクに添付されているOracle APIが本当にうれしいです。これまでのところ私はそのような広範な答えのために間違った場所を探していました。 しかし、劣化に関しては、 'getType()'と 'getConcurrency()'だけでResultSetのプロパティを問い合わせることができます。私は、そのような劣化が行われたことを示すフラグをチェックすることにもっと興味があります。なぜなら、私は 'スクロール可能なResultset'に対して' JDBC'を正しく指示しているとは確信していないからです。しかし、私はここからオラクルのドキュメントを使って問い合わせることができると思います。 Vielen Dank – Aviv