問題タブ [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.
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 制約を適用する方法はありますか?
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()メソッドをオーバーライドする)指示する方法ですか?
hibernate - Hibernate Strange "ORA-01400: NULL を挿入できません" エラー
私に奇妙なエラーが発生しています。私は Hibernate を使用しています。パラメーター クラスを持つ Widget というクラスをマップしましたが、挿入しようとすると「ORA-01400: NULL を挿入できません...」というメッセージが表示されます。
マッピングは次のように適切に行われます。
奇妙なことに、not-null プロパティが「true」に設定され、Widget オブジェクトの ID 値の挿入が強制されます。
前もって感謝します
c# - 空の文字列を持つ ASP.Net C# CreateParameter
私の ASP.net C# Web プロジェクトには、パラメーターを持つクエリ コマンド オブジェクトがあります。次のコードを使用してパラメーターを入力します。
このコードは、空の文字列を除くすべての文字列に対して機能します。入力フィールドを空白のままにすると、値が "" として渡されます。これが発生した場合、次の例外が発生します。
データベースに空白文字列を挿入する方法はありますか?
私は Oracle データベースを使用しており、プロバイダーとして System.Data.OracleClient を使用しています。
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.OracleClient
ODP.NET の代わりに(非推奨の) クラスを使用すると、すべて正常に動作します。
なんてこった、オラクル?いいえ、本当に、WTF?
oracle - エラーを与えるOracleバインド変数
エラーレポート:ORA-01400:NULLを("SYSTEM"。"DEPARTMENTS"。"DEPARTMENT_ID")に挿入できませんORA-06512:10行目01400。00000- "NULLを(%s)に挿入できません" *原因:
*アクション:最大部門番号は:190
Oracleステートメントでバインド変数を実行しようとすると、このエラーが発生します。しかし、バインド変数の代わりに値を入力すると、この挿入ステートメントが正しくなります。私はここで何が間違っているのですか?
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 を使用してエンティティ クラスを調べたところ、エンティティの正しいバージョンのようです。新しい属性がそこにあります。
誰?ありがとう
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 に依存します。
java - ORA-01400: 1 対 1 の関係に null エラーを挿入できません
私はこのコードを持っています
}
そしてこのエラー
内部例外: java.sql.SQLException: ORA-01400: NULL を ("RPINGRE"."ARE_SOLI"."ARE_SOLI_SOLIASPI_ID") に挿入できません
これはAspirante
エンティティ(フラグメント)です
およびSolicitud
エンティティ (フラグメント)