問題タブ [ora-01422]

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

oracle - Oracleのスケジュールされたジョブが失敗する

Oracle 10gを使用しており、次のスクリプトを使用してジョブを作成しています

ジョブが自動的に実行されることはありません(手動で実行されますが)。alert_sid.log

ORA-01422エラーを自分のコードにリンクできません。ここでは何もしていませんfetch

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

c# - ORA-01422 を取得する理由: 正確なフェッチが、要求された行数よりも多くを返します

そのため、インストーラーがデータベースに接続してテーブルを作成し、それらにデータを入力するインストーラーに取り組んでいます。特定のテーブルに行を追加しようとする場合を除いて、これのすべての側面が正しく機能します。

データベースに入力する select ステートメントは次のようになります。

このように構成された 13 個の select ステートメントがあります (それらはすべて類似しており、唯一の違いはテーブルに格納される値だけであるため、追加しません)。

私の問題は、インストーラーを実行すると、完了時にログに次のエラーが表示されることです。

私が知りたいのは、このエラーが発生する正確な理由と、このエラーを修正する手段は何ですか?

このトピックについていくつかの調査を行ったところ、これが私の検索の共通のテーマであることがわかりました。

1.コードにバグがあり、開発者は、複数の行が返される可能性があることに気づきませんでした。

2.API を使用せずにデータがハッキングされたため、検証が破られた。

3.ソフトウェアは問題ありません。ユーザーが行ったことは問題ありませんが、2 つの並行更新が同時に発生し、どちらも他方が行ったコミットされていない変更を確認できませんでした。したがって、正しく検証されませんでした。

#2ではないことは確かですが、他の2つの理由が正確に何を意味するのか、またはそれらを修正する方法がよくわかりません。

どんな助けや提案も大歓迎です。

ありがとう

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

oracle - 複数の行が返されるSQLPlusでバインド変数を使用していますか?

これはばかげた問題ですが、私はそれを回避できないようです。OCIプログラムで問題を引き起こしているクエリがあるので、SQL * Plusで手動で実行して、そこに違いがあるかどうかを確認したいと思います。これはクエリです:

comment_idを値3052753にバインドしたかったので、次のようにしました。

これにより、このエラーが発生します。

さて、このクエリを根本的に変更したくないので、私はすでに不満を持っていますが、とにかく私は前進してこれを思いつきます(INTOとUNIONはそれほどスムーズに連携しません):

しかし今、もちろん、私は1行以上を返すので、完全に予測可能になります

これで、カーソルなどを使い始めることができますが、私の小さなクエリは、元の自己からますます歪んでいます。私がやりたかったのは、comment_idの値でクエリが正常に実行されたかどうかを確認することだけでした。もちろん、comment_idをクエリにハードコーディングするだけで、問題なく機能します。ただし、OCIでも正常に機能するため、SQL * PLusで、OCIコードに表示されているバインド変数の問題を再現します。しかし、SQL * Plusでこれを行うのはなぜそんなに苦労するのでしょうか?私は本当に明白な何かを逃したことがありますか?

データベースはOracle10.2.0.1.0です-RedHatEnterprise Linux ESリリース4(Nahant Update 8)で実行されている64ビット

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

oracle - 複数の行を返す SELECT INTO - ORA-01422

私は3つのテーブルを持っています:

orders (order_id, order_date, cust_id, emp, id)
基本的には、が入力されたときに合計注文コストを取得する関数を作成しようとしていますが、order_idコードに入れるのに苦労しています。
具体的には、各製品を個別の変数に入れようとしています。

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

plsql - ORA-01422 - 正確なフェッチで要求された行数を超えるエラーが返される

私はPL/SQLを書く初心者です。この小さなコードがありますが、件名のエラーのために出力を印刷できません。

実行後にこのエラーが発生します:

ご意見をお待ちしております。前もって感謝します。

コードを正しく実行するにはどうすればよいですか?

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

oracle-apex - FSP_AFTER_LOGIN_URL を参照すると ora-01422 が発生する

Oracle Apex 4.2.5、Oracle 12c データベースの問題。私が取り組んでいる Oracle Apex アプリケーションは、2 つの解析スキーマを持つ単一のワークスペースです。メインのバック オフィス アプリケーションは、1 つのスキーマによって解析される多数のワークスペースで構成されています。

エラーのあるアプリケーションは、3 つのアプリケーション (12000、12001、12006) で構成される 2 番目のスキーマによって解析され、インターネットに面したページに使用されます。1 つのアプリケーションには、セキュリティ、ログイン、およびダッシュボード ページを処理する共通のページが含まれ、もう 1 つのアプリケーションには製品固有のページが含まれています。

ダッシュボード ページから製品固有のページに移動すると、最初の試行で一般的なログイン ページが表示されます。ログイン ページの URL は 、移動先のページの にFSP_AFTER_LOGIN_URL設定されてf?p=APP:PAGEいます。ログインに成功すると、ora-1422 exact fetch returns more than requested number of rowsエラーは . スイッチをオンにしてデバッグを確認すると、v 関数によってエラーがスローされていることがわかります。

見ると、wwv_flow_data3行が表示されますFSP_AFTER_LOGIN_URL

FSP_AFTER_LOGIN_URL各アプリ内のアプリ項目です。すべてのスコープが APP に設定されています。セッション状態の保護が設定されていましたが、オフに切り替えると断続的な結果が生じます。

FSP_AFTER_LOGIN_URL は、Apex によって内部的に使用されるアプリケーション項目です。Apex は、この項目を各 apex アプリケーションに自動的に追加します。

FSP_AFTER_LOGIN_URL の値をターゲット ページに設定すると、開発者は、ログイン ページによって認証されたユーザーをリダイレクトするページを定義できます。https://community.oracle.com/message/10271816?#38;#10269816を参照してください

v は、ページが現在存在するセッションのアイテムの値を返す Oracle Apex 提供の関数です。Oracle コードの奥深くに埋め込まれているのは、SELECT INTO ステートメントです。

上記のデータが WWV_FLOW_DATA に存在する場合、クエリは FLOW_ID を考慮しないため、複数の行を返します。

これはオラクルの内部であるため、私にできることはあまりありません。ソフトウェアを使用している他の顧客には問題はありません。この特定の顧客にこの問題を引き起こしている Apex 設定はありますか?

item_id=-162893176 と flow_id=null の 2 行を作成できる設定は何ですか? それらの目的は何ですか?この問題を回避するにはどうすればよいですか? ソフトウェアを使用している他の顧客には問題はありません。この特定の顧客にこの問題を引き起こしている Apex 設定はありますか?

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

oracle - Oracle SELECT INTO ステートメントがエラーをスローするのはなぜですか?

Oracleでプロシージャを作成するコードを作成しました。作成は成功しましたが、SQL開発者からRUNして出力を表示すると、エラーが表示されます。

コード:

私に提案してください。