问题标签 [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 - How do I map Hibernate collections with Oracle's NOT NULL column constraint enforced?
I have 2 tables, ENQUIRY and ELEMENT with a One-to-Many relationship such that an Enquiry has many Elements.
I would like to enforce Oracle's NOT NULL constraint on foreign key column ELEMENT.ENQUIRY_ID as this is best-practice. I have the following collection on the Enquiry object:
When I enforce the NOT NULL constraint I receive the following stacktrace:
Caused by: java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("ELEMENT"."ENQUIRY_ID")
So Hibernate is obviously persisting the collection of elements before the parent enquiry and then going back and doing an UPDATE on the foreign key field afterwards.
Is there a way to enforce the NOT NULL constraint on the collection foreign key field?
sql - 将任何实例保存到数据库时出现 Django Oracle 完整性错误
我正在从 sqlite 迁移到 oracle 后端。oracle 数据库已经存在并由其他人维护。它的版本是Oracle9i Enterprise Edition Release 9.2.0.1.0。
我有一个简单的模型:
./manage.py syncdb
不返回任何错误。但是当我尝试创建一个新实例并将其保存到数据库时,我收到以下错误:
如果我指定 id,例如AliasType.objects.create(id=5, name="test")
,它可以工作。我认为 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 - 休眠奇怪的“ORA-01400:无法将 NULL 插入”错误
我发生了一个奇怪的错误。我正在使用 Hibernate,我已经映射了名为 Widget 的类,它有一个 Parameter 类,但是当我尝试插入时,我得到“ORA-01400:无法将 NULL 插入...”
映射正确完成为:
奇怪的是,非空属性设置为“true”,这会强制插入 Widget 对象的 ID 值。
提前致谢
c# - 带有空字符串的 ASP.Net C# CreateParameter
在我的 ASP.net C# web 项目中,我有一个带有参数的查询命令对象。我使用以下代码填充参数:
此代码适用于除空字符串之外的所有字符串。如果我将输入字段留空,它会将值作为“”传递。如果发生这种情况,我会收到以下异常:
有没有一种方法可以让我在数据库中插入空白字符串?
我使用 Oracle 数据库,并且使用 System.Data.OracleClient 作为提供者。
oracle - ORA-01400 无法插入空值...但我没有插入空值!
我正在尝试使用 C# 应用程序中的 ODP.NET 在 Oracle 表中插入数据,但我收到ORA-01400 can't insert null value错误,因为我没有在其中插入空值。
这是我试图执行的参数化 SQL 命令的精简版本。它被包装在 an 中OracleCommand
并通过调用ExecuteNonQuery
:
该行以前不存在,因此它是insert
命令的一部分,被执行。当然,我已经验证了所有列名和列值参数都正确放置在 SQL 文本中。
问题出在VisitaLaboral
专栏里。它的类型为 NUMBER(1,0),它不接受 NULL,我正在尝试插入一个 0 值。这是 Visual StudioOracleParameter
在命令执行前立即显示的有关关联的内容:
但是,如果我直接在 Application Express 中执行命令(直接在命令文本中提供值),它可以正常工作并插入行。
那么,这里发生了什么?ODP.NET 库中是否存在错误,或者我做错了什么?
附加信息:
- 数据库是 Oracle 10g Express Release 10.2.0.1.0
- Oracle.DataAccess.dll 版本为 4.112.1.2
- 使用 Visual Studio 2010,面向 .NET 框架 4.0
先感谢您!
更新:
如果我使用(已弃用)System.Data.OracleClient
类而不是 ODP.NET,一切正常。
WTF,甲骨文?不,真的,WTF?
oracle - Oracle 绑定变量给出错误
错误报告:ORA-01400:无法将 NULL 插入 ("SYSTEM"."DEPARTMENTS"."DEPARTMENT_ID") ORA-06512:在第 10 行 01400.00000 -“无法将 NULL 插入 (%s)” *原因:
*操作: 最大部门号 : 190
尝试在 oracle 语句中执行绑定变量时出现此错误。但是如果我输入一些值而不是绑定变量,我会正确地得到这个插入语句。我在这里做错了什么?
java - Hibernate + Oracle,原始类型的奇怪空约束违反
我只是在实体上添加一个新列,发生了一件奇怪的事情。
该实体以前是:
实体现在是:
如您所见,我刚刚添加了一列。
在数据库中执行此操作的 sql 脚本是:
我正在做 java 批处理、读取文件、插入新实体条目并更新现有条目。
它在本地和开发服务器中工作正常,但在验证服务器中,我在新实体处理期间遇到此错误(插入)
BATCH 03/05/2011 06:41:11 WARN [JDBCExceptionReporter.java:77] - SQL 错误:1400,SQLState:23000 BATCH 03/05/2011 06:41:11 错误 [JDBCExceptionReporter.java:78] - ORA- 01400: 无法将 NULL 插入 ("mydb"."mytable"."PUBLISHED_DAYS_SINCE_LAST_PUB")
BATCH 03/05/2011 06:41:11 错误 [AbstractFlushingEventListener.java:301] - 无法将数据库状态与会话 org.hibernate.exception.ConstraintViolationException 同步:无法插入:[com.xxx.myentity] 在 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.engine.ActionQueue.executeActions(ActionQueue.java:167) 在 org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298) 在 org.hibernate.event.def.DefaultFlushEventListener.onFlush (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) at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:655) at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:732) at org.springframework .transaction.support。AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701) at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:321) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116) at org .springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635) at 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.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java) 的 oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216) 的 oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745):第966章) :3423) 在 org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23) 在 org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2242) ... 21 更多
我不明白出了什么问题,因为我添加到实体的原始类型始终初始化为 0,因此它不应该为空。
我还用 javap 查看了我的实体类,它似乎是实体的正确版本:我的新属性就在那里。
任何人?谢谢
oracle - 与数据库约束和 inverse=true 的一对多关系
有两个类 A 和 B 以及 hibernate 映射
在数据库中,表 B 的 A_FK 列上存在非空约束和外键约束。当我尝试插入包含 BI 的 A 时,出现以下错误:
ORA-01400: 无法将 NULL 插入 ("SCHEMA"."B"."A_FK")
是否可以插入此类数据而无需指定 inverse=true 标志?和反比关系?
oracle - Hibernate 和 ORA-01400:无法插入 NULL
我有一个相当简单的场景,一张表,一个用于自动生成主键的序列:
部分休眠映射如下所示:
长时间运行良好,没有问题。但最近我有这个:
这是否意味着 Oracle 无法生成 EVENT_ID 的序列号? 这可能是什么原因?显然这个错误来自64位Oracle,它可能与问题有关吗?删除并重新创建表和序列并没有帮助,它只是不想在那台特定的机器上工作。无论我做什么,我都无法重现这一点,错误来自几乎无法访问的用户之一。
有任何想法吗?
- - - - - - - - 问题解决了 - - - - - - - -
在 32 位操作系统上使用驱动程序 10.2.0.1.0 时,使用 Oracle 10.2.0.1.0 64 位检测到原始问题。一旦驱动程序更新到 11.2.0.2.0,问题就消失了。这完全取决于虚拟机是作为 32 位还是 64 位系统运行的。
java - ORA-01400 无法在一对一关系中插入空错误
我有这个代码
}
这个错误
内部异常:java.sql.SQLException:ORA-01400:无法将 NULL 插入 ("RPINGRE"."ARE_SOLI"."ARE_SOLI_SOLIASPI_ID")
这是Aspirante
实体(片段)
和Solicitud
实体(片段)