問題タブ [oracle-cursor]

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 投票する
3 に答える
473 参照

oracle - パッケージ・プロシージャのPLSQL IF ELSE

4 つのパラメーターを持つパッケージがあります。すべてのパラメータは同時リクエストから取得されます。トランザクション タイプ パラメータに基づいて、パッケージは一連のステートメントを実行する必要があります。私は oracle から始めました。以下は私のコードです

私のアプローチは機能しますか?これを成し遂げるのを手伝ってください!

0 投票する
0 に答える
825 参照

oracle - pl/sql で複数のカーソルを返す

アプリケーションがデータベースにアクセスして、UI ホームページのさまざまなセクションをロードします。すべてのセクションは 1 つの入力に依存しています。そこで、すべてのデータを異なるカーソルで返す proc を作成しました。現在、カーソルの戻り回数は約 25 回です。

私の質問は次のとおりです。Oracle pl/sql プロシージャから複数のカーソルを返すことの欠点は何ですか? 各カーソルのフェッチのコストは非常に低いため、非常に高速です。

proc を 2 つに分割し、2 つの別々の db ヒットを作成してデータを取得するとよいでしょうか?

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

plsql - Oracle Pl/sql カーソルの印刷

ループを使用せずに begin end ブロックでカーソルを直接開いて出力できますか? または、各列を読み取って行ごとに個別に印刷する必要はありません。

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

oracle - 匿名PL/SQLブロックでアウトカーソルパラメータを使用してOracleプロシージャを実行する方法は?

Oracle XE の HR データベースを使用して PL/SQL を学習しています。

次のストアド プロシージャを作成しました。

SQL Developer GUIインターフェイスで実行して結果を確認する方法を知っています。また、 Justin Caveからここここでそれを実行し、SQL*Plus スタイルの結果を次のように確認する方法も学びました。

匿名の PL/SQL ブロックでストアド プロシージャを実行し、グリッドで結果を確認したいのですが、うまくいきませんでした。

Justin Cave が提案したように、以下は問題なく実行されますが、結果は表示されません。

以下は失敗します。

エラーメッセージには次のように記載されています。

PLS-00320: この式の型の宣言が不完全であるか、形式が正しくありません

わかりません。私は他のいくつかの匿名PL/SQLブロックでそれを行ってきましたが、完全に機能しました。ここの行の何が問題になっていますか? わかりません。

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

oracle - sysref カーソルによって選択されたレコードの総数を取得するにはどうすればよいですか?

バックグラウンド

PLSQL ストアド プロシージャを呼び出して情報を取得および操作する Web アプリケーションに取り組んでいます。そのような場合の 1 つは、データベースに 2 つのストアド プロシージャがあります。1 つは指定された一連のパラメーターのレコードの総数を選択するもので、もう 1 つは同じパラメーターとページネーション パラメーター (最小および最大 rownum) を持つ実際のレコードを返すものです。

EX(実際のコードではありません):

これが良いアイデアだと思うかどうかは、私の立場の範囲を超えています。問題は、いずれかのストアド プロシージャが変更されるたびに、結果が一致しないことです。短期的な解決策は、両方のストアド プロシージャを調べて、どのストアド プロシージャのどの選択基準が適切かを判断してから、両方が一致するように他のストアド プロシージャを編集することです。

長期的な修正として、get_records_count プロシージャを変更して get_records プロシージャを呼び出し、結果の sys_refcursor から返されるレコードの総数を返したいと考えています。

元:

実際の質問

sys_refcursor に対して返されるレコードの数を選択するにはどうすればよいですか? 結果の数値は、sys_refcursor 内で返す必要があります

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

database - OracleデータベースのVarrayへのカーソルを使用した表データのフェッチ

ID、FirstName、LastName という属性を持つ PhoneBook というテーブルがあります。VARRAY を作成し、カーソルを使用して PhoneBook テーブル内のすべての firstNames を VARRAY にフェッチしたい 5 つのレコードがあります。これが私のコードです:

このコードをコンパイルすると、エラーが発生しました。

ORA-06532: 添え字が制限外です ORA-06512: 14行目06532.00000 - 「添え字が制限外です」 *原因: 添え字がVARRAYの制限を超えているか、VARRAYまたはNESTED TABLEの値が正ではありません。*処置: プログラム・ロジックを確認し、必要に応じてVARRAY制限を増やしてください。

この問題を解決するのを手伝ってください。ありがとうございました

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

oracle - カーソルを使用してテーブル データをテーブルにフェッチする

phonebook というテーブルがあり、2 つの列があります(firstName, LastName)。カーソルを使用して firstName で lastName インデックスのテーブルを作成したいので、次のコードを書きました。

正常にコンパイルされました。この手順を実行すると、tableNames に保存されている lastNames が出力されるはずですが、エラーが発生しました。

ORA-06502 PL/SQL: 数値または値のエラーです。
原因 : 算術、数値、文字列、変換、または制約のエラーが発生しました。たとえば、このエラーは、NOT NULL と宣言された変数に値 NULL を代入しようとした場合、または NUMBER(2) と宣言された変数に 99 より大きい整数を代入しようとした場合に発生します。
処置: 値が制約に違反しないように、データ、操作方法または宣言方法を変更してください。

この問題を解決するのを手伝ってください