問題タブ [ora-02291]
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.
sql - SQL エラー: ORA-02291: 整合性制約
外部キーから値にアクセスしようとしているデータベースを作成しています。次の2つのテーブルを作成しました
これらは 2 つのテーブルです。Component
とTypeComponent
。Component
は の親エンティティTypeComponent
であり、次の INSERT ステートメントを実行しようとしています:
しかし、それは私にエラーを与えています
これは、これまでに Oracle SQL dev で行ったセッションです。
hibernate - @OneToOne + Table-per-Concrete-Class = 例外?
私は Hibernate が初めて@OneToOne
で、コードで機能することができません。
多くの読書の後、私は分離株の例を作成し、コミュニティの助けを求めることを考えました.
3 つのクラスがあるとします。1 つの抽象 (Class_A) と、それを継承する 2 つのクラス (Class_B / Class_C)。Class_C には、Class_B への一方向ポインタがあります。
(図を用意しましたが、サイトに掲載できません:-/)。
ノート:
- Pure Java + Hibernate 3.6.0 Final + Oracle 11g。
- 継承戦略 = Table per Concrete Class。
- で開発
hibernate.hbm2ddl.auto=update
。 - 私たちのコードでは、 Class_B は独自のテーブルを必要とするため、 no
@Embeddable
. - 私たちのコードでは、 Class_C も抽象的であり、単純化された例で示されているものではありません。
コード
クラス_A
Class_B
Class_C
休止状態のコード
問題
Hibernateでは
insert(classC)
、Class_C を挿入する SQL のみを発行します。Class_B を挿入する SQL はありません。Oracle で Class_C の詳細が表示されますが、Class_B のテーブルは空です。
SQLは次のとおりです。Hibernate: Class_C (classB_myId、myString、myId) 値 (?、?、?) に挿入します。
で
getTransaction().commit()
爆発する
これ:
質問してください
- なぜこれが機能しないのですか...何が間違っていますか?
- レガシー コードでは、アプリケーションは一意の ID 番号を割り当て、生成された ID を使用するつもりはありません。したがって
@GenerateValue
、私たちの@Id
場合は考慮されません。これが失敗する理由ですか? - と+の違いは何
@OneToOne(cascade = CascadeType.ALL)
ですか?@OneToOne
@Cascade({CascadeType.ALL})
どうもありがとう!
- テン・オブ・ア・カインド
sql - ORA-02291:整合性制約(NAVY10.SYS_C00317513)に違反しました-親キーが見つかりません
INSERTSQLステートメントとSQLLOADERユーティリティを使用して、テーブルを作成し、データを挿入する必要があります。Oracle10gを使用しています。以下は、createtableステートメントです。
INSERT SQLステートメントを使用してTopic_Cテーブルにデータを挿入し、SQLローダーユーティリティを使用して他の4つのテーブルにデータを挿入しました。
したがって、私の問題は、SQLローダーを実行すると次のエラーが発生することです。
他のテーブルは完全に正常に機能しています!
どこが間違っているのかわかりません。明確にしてくださいありがとうございます
oracle - 各列のプロシージャで親キーの整合性制約を発生させる
テーブルにデータを挿入するパッケージに次のコードがあります。
親キーが見つからない例外を取得できます。各列の制約違反メッセージを具体的に取得するにはどうすればよいですか? たとえば、proj_id
違反している場合は例外を発生させ、proj_code
違反している場合は別の例外を発生させます。
sql - Oracle SQL INSERT: Oracle 例外をトリガーする値を報告できますか?
初めての PL/SQL スクリプトを作成しています。
私が書いているバッチ処理スクリプトでは、テーブル A の「コメント」フィールドから、さまざまな整合性制約を持つテーブル B の列にデータを挿入しています(したがって、ORA-12899 に関する懸念 - 値が長すぎる、または ORA -02291 - 値は許可されていません) .
テーブル B に値を挿入しようとして例外が発生した場合、標準出力を使用して、挿入をスキップする必要があることだけでなく、テーブル A のどの内容が挿入をスキップしたかを報告したいと考えています。
テーブル A のデータを手続き的にループし、本質的に一度に 1 つの INSERT を呼び出して、その呼び出しに対して例外を発生させたデータの値を報告できることを認識しています。しかし、可能であれば、「SQL に仕事を任せる」という原則に固執したいと思います。
ストレート SQL の"INSERT INTO {Table B} SELECT FROM {Table A}"で例外が発生したときに、 Table A のデータを表示する方法はありますか?
注: 私はデータベースに対する DDL 権限を持っておらず、何も取得できないことを知っています。INSERT/UPDATE/SELECT のような DML とクエリしかありません。残念ながら、「ログテーブルを作成する」などの解決策は問題外です。
更新: 私の質問の 2 番目の部分: Question 1065829を読んで、無効な挿入をスキップして有効な挿入を続行することさえ、ストレート SQL と DDL アクセスなしでは不可能であると考え始めています (これは、上記の質問を書く前に可能です)。テーブル A の行を反復処理するか、一度に 1 つの INSERT 呼び出しを実行するか、特別な DDL 権限を要求するかを選択する必要があるようです。 これは正しいです?
ありがとうございました!
hibernate - OneToMany を ORA-02291 エラーで Hibernate する
OneToMany 関係で子を持つエンティティを永続化するときに問題が発生します。ここに私の2つのエンティティ:
そして、ORA-02291 エラーを生成する永続操作:
この問題を解決するアイデアはありますか?
みんなありがとう!
ruby-on-rails - RoR OCIError: ORA-02291: 整合性制約違反 - 親キーが見つかりません
私はRoRアプリケーションを開発していましたが、誤って4つのテーブルをドロップする前に、2つは別の2へのFKを持っているため、復元してテーブルを「安定」にするときに、pacientes、hclinicos、およびdientesからのfkを含むレコードを挿入しようとしました
FELIPE
はデータベース、ODONTODIAGRAMAS
は挿入するテーブル、複数のレコードを含む別のテーブルであり、別のテーブルに保存するためDIENTE
にビューでレンダリングしますhclinico_new
DIENTES
これは、それらを保存するためにレンダリングする方法です
もちろん、それらは1以上です。おそらく、データベース構成のエラーですか?.奇妙なのは、これが別のテーブルに制約を挿入する唯一のテーブルではないため、なぜこのエラーが発生するのかわかりません