问题标签 [ora-00001]

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 投票
3 回答
1155 浏览

c++ - 在 ORACLE 中插入查询 usjng OCI(c++) 的问题

问题陈述:- 如果数据库中已经存在该记录(重复==>主键存在),我将向 Oracle 中插入一条记录,我想用新记录更新它。

目前在插入记录时解决这个问题,如果我得到 OCI_ERROR 然后我打电话

OCIErrorGet( (dvoid *)errhp, (ub4) 1, (text *) NULL, &errcode,errbuf, (ub4) sizeof(errbuf), OCI_HTYPE_ERROR);

然后我检查 errbuf 错误 buf 的值是否为 ORA-00001 ==> 如果存在违反唯一约束然后我更新值

有没有办法做同样的事情,除了在数据库中搜索记录,如果该记录已经存在更新它我不想这样做,因为我将不得不为此编写代码

如果值在 ORACLE 中重复,是否会产生任何特定错误?

有什么建议么?

0 投票
2 回答
50047 浏览

sql - ora-00933:SQL 命令未正确结束

我有以下代码:

结尾;

当我运行它时,oracle 给我以下错误消息:

第 8 行出现错误:ORA-06550:第 8 行,第 29 列:PL/SQL:ORA-00933:SQL 命令未正确结束 ORA-06550:第 3 行,第 2 列:PL/SQL:忽略 SQL 语句

我要做的是将现有的 prod_id 和 prod_name 与插入到调度表中的新数据链接起来。我已将 prod_name 设置为产品表中的唯一键,并将 prod_id 设置为主键,并将两者都设置为发货表中的外键约束。我需要将 prod_name 包含到 despatch 表中,以使表的读者能够更多地了解需要找到什么 prod_name 等,而不是仅仅给出对他们来说毫无意义的 prod_id。但也许我在想我不需要发送表中的 prod_id 。请帮忙。

从发货表中删除 prod_id 列后,我更改了我的代码:

结尾; /

并且出现了关于唯一约束的以下错误消息:begin * ERROR at line 1: ORA-00001: unique constraint (DBA_XY.PROD_NAME_UC) 违反 ORA-06512: at line 3

0 投票
13 回答
48103 浏览

java - Java - 找到异常的第一个原因

我需要检查异常是否是由某些数据库问题引起的。我收到一个异常并检查其原因是否包含“ORA”字符串并返回(类似于“ORA-00001”)。这里的问题是我收到的异常嵌套在其他异常中,所以如果我不知道它是否是 oracle 异常,我必须检查该异常的原因等等。有没有更清洁的方法来做到这一点?有没有办法知道给定异常的第一个原因(深层嵌套异常)?

我当前的代码如下所示:

0 投票
4 回答
48715 浏览

sql - 在哪里可以找到预定义的 Oracle pl/SQL 异常的完整列表?

在哪里可以找到所有预定义 Oracle pl/SQL 异常的完整列表?

在这个链接中我找到了这个列表,还有吗?

0 投票
1 回答
19185 浏览

oracle - 缺少详细信息的 Oracle DML 错误

我从这样的批量插入操作中捕获错误:

输出看起来像这样:

我收到错误的事实并不困扰我,因为我正在测试错误处理代码。问题是 Oracle 错误消息没有显示约束名称,即它显示check constraint (.) violated但没有告诉我我违反了哪个检查约束。

有谁知道这是怎么回事?

(甲骨文 10.2 版)

0 投票
2 回答
2203 浏览

oracle10g - 提交时获取 ORA-00001(违反唯一约束)?

我们在批处理作业中收到 ORA-00001(违反唯一约束)。但是,错误发生在发出 COMMIT 时,而不是在插入有问题的记录时。

问题:

  • 为什么在 COMMIT 会检查唯一约束?(我们可以使用一些设置以便在插入时进行检查吗?)
  • 我们如何找出导致违反唯一约束的违规 SQL/记录?

任何帮助表示赞赏!


附加信息/问题:

“违规”约束标记为 IMMEDIATE 和 NON-DEFERRABLE。这可以在事务中覆盖吗?

0 投票
0 回答
257 浏览

oracle - 多台服务器在数据库中检查和写入标志

我有一个包含 4 台服务器和 2 台 oracle 数据库服务器的环境,它们之间有用于即时 2 路复制的流。

我有一个 servlet(我无法控制它转到 4 个服务器中的哪一个),它检查作业是否正在运行,如果没有,它会在线程中启动作业。任何时候都应该只运行其中一个作业。我在数据库上放置了一个标志以指示作业正在运行(因为有 4 台服务器,我不能只在内存中保存标志)。

在同步块中,我检查作业是否正在运行,如果没有,我设置一个标志。在此之后我开始工作

这适用于只有一台服务器的环境,但不适用于我的场景。

如果我在同步块中的 2 个不同服务器上有一个线程,并且它们都在检查作业没有运行之后,那么它们都将尝试设置标志。因此,我建立了应急机制,以便能够捕获唯一的键约束(每个作业都有一个 id,它是数据库中的主键。我将此值硬编码为 1,以便数据库中只能有一个条目)。我正在使用 Springs JdbcTemplate

再说一次,这个功能正确,但我可以想象有更好的方法来做到这一点。你能建议另一种方法吗?在我看来,我需要一些可以锁定数据库的东西(当我检查标志是否正在运行然后设置标志运行时)。请记住,有 2 个数据库,所以我不知道只锁定一个是否有效。我应该查看 Spring 的交易吗?或者你能推荐点别的吗?

谢谢。

0 投票
2 回答
9839 浏览

sql - 从 Oracle DB 中查找幽灵约束

我在表中有一个约束

两周前,我修改了表,添加了一些列,删除了约束“PK_USERSAPPLICATIONS”并添加了代理键。我可以在 Oracle SQL Developer 中看到约束 PK_USERSAPPLICATIONS 不再存在。

无论如何,当我尝试添加两个具有相同用户 ID/应用程序名称组合的条目时,我收到一个错误

当我执行语句

我得到零行。怎么可能?Oracle 不应该对约束 PK_USERSAPPLICATIONS 有任何了解,因为它已经在几周前被删除,而且我在数据库中也看不到它。

0 投票
4 回答
1565 浏览

ruby-on-rails - Rails:Oracle 约束冲突

我正在对我继承的 Rails 站点进行维护工作;它由 Oracle 数据库驱动,我可以访问该站点的开发和生产安装(每个都有自己的 Oracle DB)。尝试在生产站点而不是开发站点上插入数据时,我遇到了 Oracle 错误:

据我所知(我使用 Navicat 作为 Oracle 客户端),开发站点的数据库架构与实时站点的数据库架构相同。我不是甲骨文专家;谁能阐明为什么我会在一个安装中而不是另一个安装中出现错误?

顺便说一句,开发和生产的registration_ownerships 表都填充了大量数据,包括country_ownership_id 的重复条目(由索引PK_REGISTRATION_OWNERSHIP 驱动)。如果您需要更多信息来解决问题,请告诉我。很抱歉我还没有提供更多信息,但我只是不确定哪些细节会有所帮助。

更新:我尝试在生产服务器上删除约束,但没有效果;我也不想删除索引,因为我不确定后果可能是什么,而且我不想让生产变得比现在更不稳定。

奇怪的是,我尝试手动执行引发错误的 SQL,并且 Oracle 接受了插入语句(尽管我不得不用字符串文字将日期包装在 to_date() 调用中以绕过“ORA-01861:文字不匹配格式字符串”错误)。这里可能发生了什么?

0 投票
1 回答
1400 浏览

mysql - 将 Django 项目从 MySQL 迁移到 Oracle

我有一个 Django1.1 项目,它适用于旧版 MySQL 数据库。我正在尝试将此项目迁移到 Oracle(xe 和 11g)。我们有两个迁移选项: - 使用 SQL 开发人员创建迁移 sql 脚本。- 使用 Django 固定装置。

使用 sql developer 的 sql 脚本创建的架构与从 syncdb 创建的架构不匹配。例如,Django 需要 TIMESTAMP 列,而 sql developer 创建 DATE 列。

使用带有 Django 设备的 syncdb 可能很棒,但是当尝试将 MySQL 设备加载到 Oracle 中时,使用 syncdb 后,我得到: IntegrityError:ORA-00001:违反唯一约束(USER.SYS_C004253)

如何找到造成完整性错误的部分?

更新:按照我尝试过的 django 邮件列表中的建议:

  1. 在连接到 MySQL 时转储所有内容:python manage.py dumpdata > fixture.json

  2. 使用空架构创建了一个新的 Oracle 用户并将 db 连接切换到 Oracle(没有执行 syncdb)

  3. 使用以下命令将数据加载到 Oracle:python manage.py loaddata fixture.json

我在使用 loaddata 时没有收到错误,但是在运行服务器并导航到 localhost:8000 时,我得到:ORA-00942:表或视图不存在

谢谢