問題タブ [sys-refcursor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
28331 参照

oracle - Oracle関数からRefCursorを返す方法は?

ODP.NETを使用してRefCursorを返すユーザー定義のOracle関数を実行しようとしています。関数は次のとおりです。

Toadでこの関数を呼び出し(dualからfunc_test(7)を選択)、CURSORを取り戻すことができます。しかし、DataSetを埋めるためにC#とODP.NETを使用してカーソルを取得する必要がありますが、NullReferenceException-「オブジェクト参照がオブジェクトのインスタンスに設定されていません」を取得し続けます。これが私がそのために持っているものです:

ストアドプロシージャとODP.NETの使用に関する多くの情報とサンプルを見つけることができましたが、関数からRefCursorを返すための情報はそれほど多くありませんでした。

編集: 入力パラメータをOracleCommandオブジェクト(つまり)に明示的に追加したくないのは、sqlCom.Parameters.Add("id", OracleDbType.Int32,ParameterDirection.Input).Value = 7;これを汎用のRESTful Webサービスとして実装するのが難しいためですが、最後の手段として予約していますが、代わりにストアドプロシージャを使用します。

どんな助けでも大歓迎です!

0 投票する
3 に答える
39903 参照

sql - パッケージ内の関数を呼び出す方法

私は次のことをしていますが、うまくいきません

カーソルを返す関数を呼び出しているので、推測"from dual"が問題になります

それを行う別の方法はありますか?

0 投票する
1 に答える
7228 参照

oracle - Oracle pl/sqlの内部プロシージャから外部プロシージャにカーソルを返す

Oracle PL/SQL プロシージャを使用しています。あるプロシージャを別のプロシージャ内で呼び出しています。ネストされたプロシージャから外側のプロシージャにカーソルを戻したい。これは可能ですか?手順にどの程度悪影響を及ぼしますか?

以下は呼び出し構造です。

0 投票する
1 に答える
40737 参照

sql - Oracle EXECUTE IMMEDIATE をカーソルに

EXECUTE IMMEDIATEコマンドを使用して非常に長い文字列を実行するストアド プロシージャがあります。非常に長い文字列をサポートし、データを refcursor に返すにはどうすればよいですか?

0 投票する
2 に答える
2141 参照

oracle - 1 つのレコードが含まれている場合、Oracle ref カーソルのフェッチがハングする

現在、レコードが 1 つしかないストアド プロシージャから ref カーソルが返されると、フェッチ操作がハングしてフリーズするという奇妙な問題があります。ストアド プロシージャの実行は非常に高速で、フェッチ プロセスがハングするだけです。ref カーソルに複数のレコードがある場合は、すべて問題ありません。誰かが以前に同様の問題を抱えていますか?

Oracle サーバーは、Linus で実行されている 11g です。クライアントは Windows Server 2003 です。Windows Server で汎用の Oracle sqlplus ツールを使用してこれをテストしています。

ヘルプやコメントをいただければ幸いです。ありがとう。

0 投票する
2 に答える
2894 参照

oracle10g - Pl/SQl の Refcursor で if 条件ブロックを使用する

タイプ RefCursor のパッケージを作成しました。

ストアド プロシージャでパッケージを使用しています。

コードは次のようになります。

このストアド プロシージャで 2 つの if 条件を使用したいと考えています。

私はPl-Sqlが初めてです。

これの構文を教えてくれる人はいますか。

ありがとう

--

アップデート

ありがとう、ジャスティン(ここに応答)、

しかし、次のような2つの条件を使用したい:

IF( 条件 = '1') の場合

// クエリ; 終了する場合

IF( 条件 = '2') の場合

// クエリ;

終了する場合

param基準の値を渡します。

criteria の値に基づいて、さまざまなクエリを実行したいと考えています。

0 投票する
4 に答える
6760 参照

oracle - nhibernate、sys refcursor を返す Oracle の関数を呼び出す

nhibernate を使用して ref カーソルを返す関数 (オラクル) を呼び出そうとしていますが、hbm ファイルでうまくいきません。

<return class ...構成エラーが発生するようにすると。

試してみ{ ? = call package.function(:a, :b, :c) as result from dual }ましたが、これでもうまくいきません。

0 投票する
1 に答える
3903 参照

stored-procedures - ストアド プロシージャの sys_refcursor から特定のフィールドを取得しますか?

オフィスで Oracle 9i サーバーを実行しています。私は、sys_refcursor を out パラメータとして別のパッケージに (他の in パラメータとともに) 渡す手順に取り組んでいます。呼び出されたプロシージャがカーソルに返すさまざまな列のレコードとして型を定義できました。次に、次のようなコードでループできます。

行タイプ全体を宣言する必要がなく、1 つの列のみをプルする方法はありますか? 私は次のようなものを試しました:

しかし、それはうまくいきませんでした。他のアイデアはありますか?

0 投票する
1 に答える
10785 参照

oracle - PL / SQLで戻りカーソルを閉じる方法は?

私はPL/SQLを初めて使用し、学習プロセスでカーソルを取得しました。OUT SYS_REFCURSOR私が理解している限り、その目的はC言語のポインタのように「データを返す」ことであるタイプのストアドプロシージャパラメータを見てきました。SYS_REFCURSORプロシージャがパラメータを開かなければならず、閉じることができない場合、誰がそのようなパラメータを閉じるのだろうかと思っていました。(プロシージャが終了するOUT SYS_REFCURSORと、返されるデータはありません)。

OUT SYS_REFCURSORまた、カーソルを閉じるためのパラメータを含むストアドプロシージャ以外の外部関数に依存するのは悪い設計だと思います。カーソルを使用せずにストアドプロシージャからテーブルを返す方法はありますか?

0 投票する
1 に答える
29491 参照

oracle - C#から出力パラメータとして参照カーソルを使用してOracle関数を呼び出す方法は?

Oracle関数に基づくデータベースAPIを提供する製品を使用しており、一般にODP.NETを介して関数を呼び出すことができます。ただし、アウトパラメータとして参照カーソルを含む関数を呼び出す方法がわかりません。これまでに見つけたすべてのサンプルは、Outパラメーターを使用してプロシージャを呼び出すか、戻り値としてRefCursorを使用して関数を呼び出します。同様にパラメータを定義しようとしましたが、間違った数またはタイプのパラメータが指定されているというエラーが発生し続けます。

関数ヘッダーは次のとおりです(明らかにわかりにくい):

これらは「somepackage」の型定義です。

そして、これは私が試したコードです:

関数を呼び出すために、次のさまざまな方法を試しました(もちろん、一度に1つだけ)。

しかし、それぞれがエラーメッセージで失敗します。

では、ODP.NETを使用してC#から出力パラメーターとして参照カーソルを使用して関数を呼び出すことは一般的に可能ですか?RefCursorの代わりにVarchar2-Out-parameterを使用して同じ構造の関数を問題なく呼び出すことができます...

ところで、私はVisual Studio 2008のC#.NET3.5のODP.NETバージョン2.112.2.0を使用しています。

よろしくお願いします!