2017-09-06 3 views
-1

Javaコードの助けを借りてOracle Cursorを作成したいと考えました。私はインターネットで検索しようとしましたが、何も見つかりませんでした。 Javaコードを使用してCursorを作成できますか?Javaプログラムを使用したOracleカーソルの作成

+0

どのプラットフォームですか?あなたは何を達成したいですか? – sagi

+0

私たちはアプリケーションのパフォーマンスを最適化しようとしています。申し訳ありませんが、私は最初の質問を取得していない、プラットフォームでは、オペレーティングシステムを意味するのですか? –

+0

https://stackoverflow.com/q/43710288/1509264の重複 – MT0

答えて

0

Javaコードを使用してカーソルを作成することはできません。

カーソルは、クエリーと対応する結果セットを表すデータベース内部のデータ構造への参照(ポインター)です。ポインターをデータベース外に作成することは意味がありません。

Oracle Documentationから:REF CURSOR Sを使用してREF CURSOR

はじめは、クライアント・アプリケーションにOracleデータベースからクエリ結果を返すために最も強力かつ柔軟、かつスケーラブルな方法の一つです。

REF CURSORは、値がデータベース上のクエリ作業領域のメモリアドレスであるPL/SQLデータ型です。本質的に、REF CURSORは、データベース上の結果セットのポインタまたはハンドルです。 REF CURSORは、OracleRefCursor ODP.NETクラスで表されます。

REF CURSOR Sは、以下の特性を有する:

  • REF CURSORは、データベース上のメモリアドレスを参照します。したがって、アクセスするには、クライアントをREF CURSORの存続期間中にデータベースに接続する必要があります。

  • REF CURSORには、追加のデータベース往復が含まれます。 REF CURSORがクライアントに返される間、クライアントがREF CURSORを開いてデータを要求するまで、実際のデータは返されません。ユーザーがデータを読み取ろうとするまで、データは取り出されないことに注意してください。

  • REF CURSORは更新できません。 REF CURSORで表される結果セットは読み取り専用です。 REF CURSORを使用してデータベースを更新することはできません。

  • REF CURSORは後方スクロールできません。 REF CURSORによって表されるデータは、順方向のみで連続してアクセスされます。 REF CURSOR内のレコードポインタを、結果セット内のランダムレコードを指すように配置することはできません。

  • REF CURSORは、PL/SQLデータ型です。 PL/SQLコード・ブロック内にREF CURSORを作成して戻します。

カーソルを返し、その後、外部アプリケーションからそれを呼び出すデータベースでストアドプロシージャ(または関数)を作成する必要があります。

関連する問題