問題タブ [ora-00001]
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 - Oracleで1つのテーブルから別のテーブルへの単一のクエリで複数の行を挿入します
主キーが DCRDID である dcr_details_new と dcr_details_old の 2 つのテーブルがあります。
dcr_details_new テーブルと dcr_details_old テーブルはどちらも同じ構造を共有しています。主キーは DCRDID で、挿入ごとに 1 ずつインクリメントします。
dcr_details_old から dcr_details_new にすべての行をフェッチする必要があり、DOCREGNO と DCR_No でレコードをフィルター処理する必要があります。
したがって、通常の単一行のインポート/挿入は、次のように正確に実行されます。
dcr_no
ここで、フィルタリングをスキップして、異なる を持つレコードが多すぎるため、レコードを挿入したいと考えていますdcr_no
。ここで、選択ステートメントのみでフィルタリングすると DOCREGNO
多くのレコードが返され、ループして挿入しようとすると、必要に応じてインクリメントされないため、常に主キーを台無しにします。
これが私が試したループと私が得ているエラーです。
エラー:
このエラーSYS_C0061873
には主キーがありますDCRDID
。ここに挿入する値は、手動で入力する必要'100008'
がある新しい値です。docregno
続行する簡単な方法はありますか?どうぞよろしくお願いいたします。
c# - ループ内の db.SaveChanges() は、エラー後にレコードを保存しません
EPPLUS を使用して、Excel から DataBase にデータをインポートしたいと考えています。ここからコードを取得しました: https://www.paragon-inc.com/resources/blogs-posts/easy_excel_interaction_pt6
Excelのデータが正しければ、すべて正常に機能します。問題は、レコードに無効なデータがあるかどうかです。たとえば、Excel に 3 つのレコードがあります。
- ID: 21 (ID がベースにありません) | 名: ジョン | 姓: ケージ
- ID: 1 (ID はベースにあります) | FIRST NAME: めい | 姓: 青
- ID: 25 (ID がベースにありません) | 名: ニック | 姓: シリ
そして、データベースにはすでに で記録されていID = 1
ます。したがって、1 番目と 3 番目は保存する必要がありますが、2 番目は保存しないでください。問題は、最初のレコードのみが保存され、残り (2 番目と 3 番目) がエラーになることです。どうしてか分かりません?たぶん、それは1つのトランザクションまたは何ですか?それは奇妙だ。1番目と3番目のレコードを保存するにはどうすればよいか誰か教えてもらえますか? この場合は1stだけじゃない?
エラー:
ORA-00001: 一意制約の主キーに違反しています
3番目のレコードで意味をなさないものは...
oracle - Codeigniter ORA-00001: 一意の制約
このエラー: メッセージ: oci_execute (): ORA-00001: 一意の制約 (SCHEMA_NAME.NAME CONSTRAINT) 違反
エラーをより単純に、より一般的に処理する方法がないのだろうか。
そうしないと、追加する前にモデルの各関数でデータをチェックして、重複がなく、上記のエラーが発生しないようにする必要があるためです。
これを解決する簡単な方法を知っている人はいますか?
ありがとう。
oracle - PL/SQL での ORA-00001 の調査
前回、本番環境でストアド プロシージャを実行中に ORA-00001 に遭遇しました。ストアド プロシージャは昨日まで正常に動作していましたが、トラブルシューティングを試みましたが、どこにも行きませんでした。
以下でいくつかの有用な考えを提供していただければ幸いです..
状況を次のように分類しました: 1) 主キーを持つテーブル、2) シーケンス、3) ストアド プロシージャ。
1) 以下のメインテーブルがあります。
2) シーケンス
独立したバックアップ テーブル:
3) そして最後に、ストアド プロシージャ:
それを知っていると、テーブル MY_MESSAGES は、主キーに同じシーケンス (MESSAGE_ID_SEQUENCE) を使用する他のプロセスによって使用されます。
ストアド プロシージャはしばらく実行されていましたが、〜 5000 レコードのうち 400 を超えるレコードが挿入されました。その後、次のエラーで停止しました。
さらに、テーブルを調査した結果、正常に挿入されたレコードのすべての主キーが、停止する前にシーケンシャルであることがわかりました..
他のプロセスはバックグラウンドで完全に正常に実行されており、挿入されたレコードもシーケンシャルですが、ストアド プロシージャによって挿入された最後のレコードと他のプロセスによって挿入された次のレコードの間に 1 つの数値のギャップがあることがわかります。
これは、MESSAGE_ID_SEQUENCE.NEXTVAL がストアド プロシージャによって実行されたが、レコードが挿入されなかったことを意味します。
ストアド プロシージャが停止した場合、テーブルには主キーを持つレコードがありません。
何がうまくいかなかったのでしょうか?さらに詳しく調べるにはどうすればよいでしょうか。