問題タブ [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.
oracle - パッケージ・プロシージャのPLSQL IF ELSE
4 つのパラメーターを持つパッケージがあります。すべてのパラメータは同時リクエストから取得されます。トランザクション タイプ パラメータに基づいて、パッケージは一連のステートメントを実行する必要があります。私は oracle から始めました。以下は私のコードです
私のアプローチは機能しますか?これを成し遂げるのを手伝ってください!
oracle - pl/sql で複数のカーソルを返す
アプリケーションがデータベースにアクセスして、UI ホームページのさまざまなセクションをロードします。すべてのセクションは 1 つの入力に依存しています。そこで、すべてのデータを異なるカーソルで返す proc を作成しました。現在、カーソルの戻り回数は約 25 回です。
私の質問は次のとおりです。Oracle pl/sql プロシージャから複数のカーソルを返すことの欠点は何ですか? 各カーソルのフェッチのコストは非常に低いため、非常に高速です。
proc を 2 つに分割し、2 つの別々の db ヒットを作成してデータを取得するとよいでしょうか?
plsql - Oracle Pl/sql カーソルの印刷
ループを使用せずに begin end ブロックでカーソルを直接開いて出力できますか? または、各列を読み取って行ごとに個別に印刷する必要はありません。
oracle - 匿名PL/SQLブロックでアウトカーソルパラメータを使用してOracleプロシージャを実行する方法は?
Oracle XE の HR データベースを使用して PL/SQL を学習しています。
次のストアド プロシージャを作成しました。
SQL Developer GUIインターフェイスで実行して結果を確認する方法を知っています。また、 Justin Caveからこことここでそれを実行し、SQL*Plus スタイルの結果を次のように確認する方法も学びました。
匿名の PL/SQL ブロックでストアド プロシージャを実行し、グリッドで結果を確認したいのですが、うまくいきませんでした。
Justin Cave が提案したように、以下は問題なく実行されますが、結果は表示されません。
以下は失敗します。
エラーメッセージには次のように記載されています。
PLS-00320: この式の型の宣言が不完全であるか、形式が正しくありません
わかりません。私は他のいくつかの匿名PL/SQLブロックでそれを行ってきましたが、完全に機能しました。ここの行の何が問題になっていますか? わかりません。
oracle - sysref カーソルによって選択されたレコードの総数を取得するにはどうすればよいですか?
バックグラウンド
PLSQL ストアド プロシージャを呼び出して情報を取得および操作する Web アプリケーションに取り組んでいます。そのような場合の 1 つは、データベースに 2 つのストアド プロシージャがあります。1 つは指定された一連のパラメーターのレコードの総数を選択するもので、もう 1 つは同じパラメーターとページネーション パラメーター (最小および最大 rownum) を持つ実際のレコードを返すものです。
EX(実際のコードではありません):
これが良いアイデアだと思うかどうかは、私の立場の範囲を超えています。問題は、いずれかのストアド プロシージャが変更されるたびに、結果が一致しないことです。短期的な解決策は、両方のストアド プロシージャを調べて、どのストアド プロシージャのどの選択基準が適切かを判断してから、両方が一致するように他のストアド プロシージャを編集することです。
長期的な修正として、get_records_count プロシージャを変更して get_records プロシージャを呼び出し、結果の sys_refcursor から返されるレコードの総数を返したいと考えています。
元:
実際の質問
sys_refcursor に対して返されるレコードの数を選択するにはどうすればよいですか? 結果の数値は、sys_refcursor 内で返す必要があります
database - OracleデータベースのVarrayへのカーソルを使用した表データのフェッチ
ID、FirstName、LastName という属性を持つ PhoneBook というテーブルがあります。VARRAY を作成し、カーソルを使用して PhoneBook テーブル内のすべての firstNames を VARRAY にフェッチしたい 5 つのレコードがあります。これが私のコードです:
このコードをコンパイルすると、エラーが発生しました。
ORA-06532: 添え字が制限外です ORA-06512: 14行目06532.00000 - 「添え字が制限外です」 *原因: 添え字がVARRAYの制限を超えているか、VARRAYまたはNESTED TABLEの値が正ではありません。*処置: プログラム・ロジックを確認し、必要に応じてVARRAY制限を増やしてください。
この問題を解決するのを手伝ってください。ありがとうございました
oracle - カーソルを使用してテーブル データをテーブルにフェッチする
phonebook というテーブルがあり、2 つの列があります(firstName, LastName)
。カーソルを使用して firstName で lastName インデックスのテーブルを作成したいので、次のコードを書きました。
正常にコンパイルされました。この手順を実行すると、tableNames に保存されている lastNames が出力されるはずですが、エラーが発生しました。
ORA-06502 PL/SQL: 数値または値のエラーです。
原因 : 算術、数値、文字列、変換、または制約のエラーが発生しました。たとえば、このエラーは、NOT NULL と宣言された変数に値 NULL を代入しようとした場合、または NUMBER(2) と宣言された変数に 99 より大きい整数を代入しようとした場合に発生します。
処置: 値が制約に違反しないように、データ、操作方法または宣言方法を変更してください。
この問題を解決するのを手伝ってください