問題タブ [ora-01400]

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

oracle - Oracle の NOT NULL 列制約が適用された状態で Hibernate コレクションをマップするにはどうすればよいですか?

照会には多くの要素が含まれるように、一対多の関係を持つ照会と要素の 2 つのテーブルがあります。

これがベストプラクティスであるため、外部キー列 ELEMENT.ENQUIRY_ID に Oracle の NOT NULL 制約を適用したいと思います。Inquiry オブジェクトに次のコレクションがあります。

NOT NULL 制約を適用すると、次のスタック トレースが表示されます。

原因: java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("ELEMENT"."ENQUIRY_ID")

したがって、Hibernate は明らかに、親の問い合わせの前に要素のコレクションを永続化し、その後戻って外部キー フィールドで UPDATE を実行しています。

コレクションの外部キー フィールドに NOT NULL 制約を適用する方法はありますか?

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

sql - インスタンスをデータベースに保存するときのDjangoOracle整合性エラー

sqliteからoracleバックエンドへの移行を行っています。oracleデータベースはすでに存在し、他の人によって維持されています。そのバージョンは、Oracle9iEnterpriseEditionリリース9.2.0.1.0です。

私は単純なモデルを持っています:

./manage.py syncdbエラーは返されません。しかし、新しいインスタンスを作成してデータベースに保存しようとすると、次のエラーが発生します。

たとえばAliasType.objects.create(id=5, name="test")、idを指定すると、機能します。djangoはid値を自動的に取得できるはずだと思いました。Oracleは自動インクリメントをサポートしていないため、トリガーとシーケンスを使用する必要があることを学びました。データベースには、すべての新しい行のIDを返す既存のシーケンスがあると言われ、その名前を知っていますSEQ_GET_NEW_ID

だから問題は、それを最もエレガントな方法で実装する方法、つまり、Djangoにget id values for all new objects from the sequence named SEQ_GET_NEW_IDあまりハッキングせずに(たとえば、すべてのモデルのsave()メソッドをオーバーライドする)指示する方法ですか?

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

hibernate - Hibernate Strange "ORA-01400: NULL を挿入できません" エラー

私に奇妙なエラーが発生しています。私は Hibernate を使用しています。パラメーター クラスを持つ Widget というクラスをマップしましたが、挿入しようとすると「ORA-01400: NULL を挿入できません...」というメッセージが表示されます。

マッピングは次のように適切に行われます。

奇妙なことに、not-null プロパティが「true」に設定され、Widget オブジェクトの ID 値の挿入が強制されます。

前もって感謝します

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

c# - 空の文字列を持つ ASP.Net C# CreateParameter

私の ASP.net C# Web プロジェクトには、パラメーターを持つクエリ コマンド オブジェクトがあります。次のコードを使用してパラメーターを入力します。

このコードは、空の文字列を除くすべての文字列に対して機能します。入力フィールドを空白のままにすると、値が "" として渡されます。これが発生した場合、次の例外が発生します。

データベースに空白文字列を挿入する方法はありますか?

私は Oracle データベースを使用しており、プロバイダーとして System.Data.OracleClient を使用しています。

0 投票する
5 に答える
7764 参照

oracle - ORA-01400 null 値を挿入できません... しかし、null 値を挿入していません!

C# アプリケーションから ODP.NET を使用して Oracle テーブルにデータを挿入しようとしていますが、 NULL 値を挿入していない列に対してORA-01400 can't insert null valueエラーが発生します。

これは、実行しようとしているパラメーター化された SQL コマンドの簡略化されたバージョンです。でラップOracleCommandされ、次の呼び出しで実行されExecuteNonQueryます。

行は以前に存在しないため、insert実行されるのはコマンドの一部です。もちろん、すべての列名と列値パラメーターが SQL テキストに適切に配置されていることを確認しました。

問題はVisitaLaboralコラムにあります。これは NUMBER(1,0) 型であり、NULL を受け入れず、0 の値を挿入しようとしています。これはOracleParameter、コマンド実行の直前に関連付けられたものについて Visual Studio が表示するものです。

ここに画像の説明を入力

ただし、Application Express でコマンドを直接実行すると (コマンド テキストに値を直接指定して)、正常に動作し、行が挿入されます。

それで、ここで何が起こっているのですか?ODP.NET ライブラリにバグがありますか、それとも何か問題がありますか?

追加情報:

  • データベースは Oracle 10g Express リリース 10.2.0.1.0 です。
  • Oracle.DataAccess.dll のバージョンは 4.112.1.2 です
  • Visual Studio 2010 を使用し、.NET Framework 4.0 を対象とする

前もって感謝します!

アップデート:

System.Data.OracleClientODP.NET の代わりに(非推奨の) クラスを使用すると、すべて正常に動作します。

なんてこった、オラクル?いいえ、本当に、WTF?

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

oracle - エラーを与えるOracleバインド変数

エラーレポート:ORA-01400:NULLを("SYSTEM"。"DEPARTMENTS"。"DEPARTMENT_ID")に挿入できませんORA-06512:10行目01400。00000- "NULLを(%s)に挿入できません" *原因:
*アクション:最大部門番号は:190

Oracleステートメントでバインド変数を実行しようとすると、このエラーが発生します。しかし、バインド変数の代わりに値を入力すると、この挿入ステートメントが正しくなります。私はここで何が間違っているのですか?

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

java - Hibernate + Oracle、プリミティブ型で奇妙な null 制約違反

エンティティに新しい列を追加したところ、奇妙なことが起こっています。

エンティティは以前:

エンティティは次のようになりました。

ご覧のとおり、列を追加しました。

データベースでそれを行うためのSQLスクリプトは次のとおりです。

Java バッチ処理、ファイルの読み取り、新しいエンティティ エントリの挿入、および既存のエントリの更新を行っています。

ローカルおよび開発サーバーでは正常に動作しますが、検証サーバーでは、新しいエンティティの処理中にこのエラーが発生しました (挿入)

バッチ 03/05/2011 06:41:11 警告 [JDBCExceptionReporter.java:77] - SQL エラー: 1400、SQLState: 23000 バッチ 03/05/2011 06:41:11 エラー [JDBCExceptionReporter.java:78] - ORA- 01400: ("mydb"."mytable"."PUBLISHED_DAYS_SINCE_LAST_PUB") に NULL を挿入できません

バッチ 03/05/2011 06:41:11 エラー [AbstractFlushingEventListener.java:301] - データベースの状態をセッション org.hibernate.exception.ConstraintViolationException と同期できませんでした: 挿入できませんでした: [com.xxx.myentity] at org.hibernate .exception.SQLStateConverter.convert(SQLStateConverter.java:71) org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2262) org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2655) org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:60) org.hibernate.engine.ActionQueue.execute(ActionQueue.java: 279) org.hibernate.engine.ActionQueue.executeActions (ActionQueue.java:263) org.hibernate.event.def.AbstractFlushingEventListener.performExecutions (AbstractFlushingEventListener.java:298) で org.hibernate.event.def.DefaultFlushEventListener.onFlush で org.hibernate.engine.ActionQueue.executeActions (ActionQueue.java:167) で(DefaultFlushEventListener.java:27) org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1001) で org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:339) で org.hibernate.transaction.JDBCTransaction. commit(JDBCTransaction.java:106) org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:655) org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:732) org.springframework .transaction.support.org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:321) で AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116) で.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) の org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635) の com.xxx.eplatform.websites.webstore.batch .processor.DistrinetDataProcessor$$EnhancerByCGLIB$$42d43018.processDistrinetLine() at com.xxx.eplatform.websites.webstore.batch.services.impl.WebstoreImporterServiceImpl.importDistrinetFile(WebstoreImporterServiceImpl.java:71) com.xxx.eplatform.websites.webstore.batch.WebstoreImportBatch.execute(WebstoreImportBatch.java:142) で com.xxx.eplatform.websites.webstore.batch.WebstoreImportBatch.main(WebstoreImportBatch.java:104) で: java.sql.SQLException: ORA-01400: NULL を ("mydb"."mytable"."PUBLISHED_DAYS_SINCE_LAST_PUB") に挿入できません

oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) で oracle.jdbc.driver.T4CTTIOer.processError(T4CTTIoer.java:331) で oracle.jdbc.driver.T4CTTIOer.processError(T4CTTIOer.java:288) ) oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) で oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216) で oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java: 966) oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170) oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339) oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java) :3423) org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23) org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2242) ... 21 もっと見る

エンティティに追加したプリミティブ型は常に 0 で初期化されるため、null であってはならないため、何が問題なのかわかりません。

また、javap を使用してエンティティ クラスを調べたところ、エンティティの正しいバージョンのようです。新しい属性がそこにあります。

誰?ありがとう

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

oracle - Hibernate および ORA-01400: NULL を挿入できません

私は非常に単純なシナリオ、1 つのテーブル、自動生成主キーの 1 つのシーケンスを持っています。

ハイバネート マッピングの一部は次のようになります。

長時間問題なく動作します。しかし、最近私はこれを持っています:

これは、Oracle が EVENT_ID のシーケンス番号を生成できなかったことを意味しますか? この理由は何ですか?どうやらこのエラーは 64 ビット Oracle から発生したようですが、問題に関連している可能性はありますか? テーブルとシーケンスを削除して再作成しても役に立ちません。その特定のマシンで動作したくないだけです。私が何をしても、これを再現できません。エラーは、ほとんど到達できないユーザーの1人から発生します。

何か案は?

- - - - - - - - 問題が解決しました - - - - - - - -

元の問題は、32 ビット OS でドライバー 10.2.0.1.0 を使用しているときに、Oracle 10.2.0.1.0 64 ビットで検出されました。ドライバーが 11.2.0.2.0 に更新されると、問題は解消されました。VM が 32 ビットまたは 64 ビット システムとして実行されているかどうかは、すべて VM に依存します。

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

java - ORA-01400: 1 対 1 の関係に null エラーを挿入できません

私はこのコードを持っています

}

そしてこのエラー

内部例外: java.sql.SQLException: ORA-01400: NULL を ("RPINGRE"."ARE_SOLI"."ARE_SOLI_SOLIASPI_ID") に挿入できません

これはAspiranteエンティティ(フラグメント)です

およびSolicitudエンティティ (フラグメント)