问题标签 [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.
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 中重复,是否会产生任何特定错误?
有什么建议么?
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
java - Java - 找到异常的第一个原因
我需要检查异常是否是由某些数据库问题引起的。我收到一个异常并检查其原因是否包含“ORA”字符串并返回(类似于“ORA-00001”)。这里的问题是我收到的异常嵌套在其他异常中,所以如果我不知道它是否是 oracle 异常,我必须检查该异常的原因等等。有没有更清洁的方法来做到这一点?有没有办法知道给定异常的第一个原因(深层嵌套异常)?
我当前的代码如下所示:
sql - 在哪里可以找到预定义的 Oracle pl/SQL 异常的完整列表?
在哪里可以找到所有预定义 Oracle pl/SQL 异常的完整列表?
在这个链接中我找到了这个列表,还有吗?
oracle - 缺少详细信息的 Oracle DML 错误
我从这样的批量插入操作中捕获错误:
输出看起来像这样:
我收到错误的事实并不困扰我,因为我正在测试错误处理代码。问题是 Oracle 错误消息没有显示约束名称,即它显示check constraint (.) violated
但没有告诉我我违反了哪个检查约束。
有谁知道这是怎么回事?
(甲骨文 10.2 版)
oracle10g - 提交时获取 ORA-00001(违反唯一约束)?
我们在批处理作业中收到 ORA-00001(违反唯一约束)。但是,错误发生在发出 COMMIT 时,而不是在插入有问题的记录时。
问题:
- 为什么在 COMMIT 会检查唯一约束?(我们可以使用一些设置以便在插入时进行检查吗?)
- 我们如何找出导致违反唯一约束的违规 SQL/记录?
任何帮助表示赞赏!
附加信息/问题:
“违规”约束标记为 IMMEDIATE 和 NON-DEFERRABLE。这可以在事务中覆盖吗?
oracle - 多台服务器在数据库中检查和写入标志
我有一个包含 4 台服务器和 2 台 oracle 数据库服务器的环境,它们之间有用于即时 2 路复制的流。
我有一个 servlet(我无法控制它转到 4 个服务器中的哪一个),它检查作业是否正在运行,如果没有,它会在线程中启动作业。任何时候都应该只运行其中一个作业。我在数据库上放置了一个标志以指示作业正在运行(因为有 4 台服务器,我不能只在内存中保存标志)。
在同步块中,我检查作业是否正在运行,如果没有,我设置一个标志。在此之后我开始工作
这适用于只有一台服务器的环境,但不适用于我的场景。
如果我在同步块中的 2 个不同服务器上有一个线程,并且它们都在检查作业没有运行之后,那么它们都将尝试设置标志。因此,我建立了应急机制,以便能够捕获唯一的键约束(每个作业都有一个 id,它是数据库中的主键。我将此值硬编码为 1,以便数据库中只能有一个条目)。我正在使用 Springs JdbcTemplate
再说一次,这个功能正确,但我可以想象有更好的方法来做到这一点。你能建议另一种方法吗?在我看来,我需要一些可以锁定数据库的东西(当我检查标志是否正在运行然后设置标志运行时)。请记住,有 2 个数据库,所以我不知道只锁定一个是否有效。我应该查看 Spring 的交易吗?或者你能推荐点别的吗?
谢谢。
sql - 从 Oracle DB 中查找幽灵约束
我在表中有一个约束
两周前,我修改了表,添加了一些列,删除了约束“PK_USERSAPPLICATIONS”并添加了代理键。我可以在 Oracle SQL Developer 中看到约束 PK_USERSAPPLICATIONS 不再存在。
无论如何,当我尝试添加两个具有相同用户 ID/应用程序名称组合的条目时,我收到一个错误
当我执行语句
我得到零行。怎么可能?Oracle 不应该对约束 PK_USERSAPPLICATIONS 有任何了解,因为它已经在几周前被删除,而且我在数据库中也看不到它。
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:文字不匹配格式字符串”错误)。这里可能发生了什么?
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 邮件列表中的建议:
在连接到 MySQL 时转储所有内容:python manage.py dumpdata > fixture.json
使用空架构创建了一个新的 Oracle 用户并将 db 连接切换到 Oracle(没有执行 syncdb)
使用以下命令将数据加载到 Oracle:python manage.py loaddata fixture.json
我在使用 loaddata 时没有收到错误,但是在运行服务器并导航到 localhost:8000 时,我得到:ORA-00942:表或视图不存在
谢谢