问题标签 [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 - 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?

0 投票
1 回答
1405 浏览

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() 方法)?

0 投票
1 回答
1743 浏览

hibernate - 休眠奇怪的“ORA-01400:无法将 NULL 插入”错误

我发生了一个奇怪的错误。我正在使用 Hibernate,我已经映射了名为 Widget 的类,它有一个 Parameter 类,但是当我尝试插入时,我得到“ORA-01400:无法将 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 无法插入空值...但我没有插入空值!

我正在尝试使用 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?

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,原始类型的奇怪空约束违反

我只是在实体上添加一个新列,发生了一件奇怪的事情。

该实体以前是:

实体现在是:

如您所见,我刚刚添加了一列。

在数据库中执行此操作的 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 查看了我的实体类,它似乎是实体的正确版本:我的新属性就在那里。

任何人?谢谢

0 投票
2 回答
896 浏览

oracle - 与数据库约束和 inverse=true 的一对多关系

有两个类 A 和 B 以及 hibernate 映射

在数据库中,表 B 的 A_FK 列上存在非空约束和外键约束。当我尝试插入包含 BI 的 A 时,出现以下错误:

ORA-01400: 无法将 NULL 插入 ("SCHEMA"."B"."A_FK")

是否可以插入此类数据而无需指定 inverse=true 标志?和反比关系?

0 投票
1 回答
5179 浏览

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 位系统运行的。

0 投票
2 回答
10879 浏览

java - ORA-01400 无法在一对一关系中插入空错误

我有这个代码

}

这个错误

内部异常:java.sql.SQLException:ORA-01400:无法将 NULL 插入 ("RPINGRE"."ARE_SOLI"."ARE_SOLI_SOLIASPI_ID")

这是Aspirante实体(片段)

Solicitud实体(片段)