看以下现象:
更新一条表数据出错:
update sch_role set name='SUPPORT' where name='SUPPORT1'
java.sql.SQLException: ORA-00001: unique constraint (FCMCORE.UK_BKPM7NJY2ORT1YOIDDC7JG8GJ) violated
提示UK_BKPM7NJY2ORT1YOIDDC7JG8GJ这个unique constraint阻止了我们更新数据。很自然的我们想到先把它删掉:
alter table sch_role drop constraint UK_BKPM7NJY2ORT1YOIDDC7JG8GJ
java.sql.SQLException: ORA-02443: Cannot drop constraint - nonexistent constraint
诡异的constraint! 明明阻止了我修改表数据,却在删除的时候找不到它!。
困扰了好久,中间好多曲折,权限问题,锁什么的都想过。无果。meta表中似乎没有这个constraint的信息。
第二天一想,nonexistent constraint ! 可是说不定它不是一个constraint呢?all_objects中会不会有呢?于是,
select OBJECT_NAME,OBJECT_TYPE from all_objects where object_name like '%UK_BKPM7NJY2ORT1YOIDDC7JG8GJ%'
OBJECT_NAME,OBJECT_TYPE
UK_BKPM7NJY2ORT1YOIDDC7JG8GJ,INDEX
它是一个index! 于是,
drop index "UK_BKPM7NJY2ORT1YOIDDC7JG8GJ"
update sch_role set name='SUPPORT' where name='SUPPORT1'
成功!。
看起来莫名其妙的问题,总有一个切入点。看起来完美无缺的骗局,总能找到破绽。看起来强大的对手,总有弱点。看你要下多大的决心。
相关推荐
Oracle 数据驱动包 `ojdbc14-10.2.0.3.0.jar` 是 Oracle 公司为 Java 应用程序提供的一种用于连接 Oracle 数据库的关键组件。Oracle JDBC (Java Database Connectivity) 驱动允许 Java 程序通过 JDBC API 与 Oracle ...
Oracle 内部培训资料:Oracle 10g 培训材料(18个PPT) 如下: Oracle_数据库_10g性能概述.ppt Oracle_数据库_10g极大提高可用性和网格计算能力.ppt Oracle_数据库_10g的备份与恢复特性-恢复管理器与闪回查询技术....
C#连接Oracle数据库执行简单的增删改查操作 C#连接Oracle数据库执行简单的增删改查操作是指使用C#语言连接Oracle数据库,并执行基本的数据操作,如增删改查。下面是对该操作的详细解释: 一、连接Oracle数据库 要...
Oracle Database 11g:SQL基础I (学生指南第2册)官方中文版教材
在Oracle数据库系统中,"ORA-01036:非法的变量名/编号"是一个常见的错误,通常出现在PL/SQL代码或者SQL查询语句中,当你尝试使用一个不正确或者未定义的变量时,Oracle数据库会抛出这个错误。这个错误可能是由于...
String url = "jdbc:oracle:thin:@//hostname:port/service_name"; Connection conn = DriverManager.getConnection(url, "username", "password"); ``` 4. **执行SQL**:一旦连接建立,可以通过`Statement`或`...
String url = "jdbc:oracle:thin:@hostname:port/service_name"; String username = "your_username"; String password = "your_password"; Connection conn = DriverManager.getConnection(url, username, password...
Oracle_plsql讲义:第12章 其它数据库对象.ppt
oracle报错ora-12541:TNS无监听程序
VB.NET 操作 Oracle 数据库增删改查以及存储过程调用 在本篇文章中,我们将详细介绍如何使用 VB.NET 操作 Oracle 数据库,包括增删改查操作以及存储过程的调用。 VB.NET 操作 Oracle 数据库的准备工作 在开始操作...
面向对象的Oracle是一种将面向对象编程的概念应用于Oracle数据库系统的技术,它使得数据库设计和开发更加灵活,能够更好地处理复杂的数据结构和业务逻辑。在Oracle 9i版本中,Oracle引入了面向对象特性,如对象类型...
掌握SQL,对于数据库管理员以及数据库工程师来说,它犹如古代剑客手中的剑,现在士兵手中的枪一样绝对是不可或缺的。 第一章 编写基本的SQL SELECT语句 第二章 约束和排序 第三章 ORACLE SQL 单行函数 第四章 从多...
Oracle JDBC驱动程序是连接Java应用程序与Oracle数据库的关键组件。ojdbc14-10.2.0.4.0是Oracle公司为Java开发者提供的一款针对Oracle 10g数据库的JDBC驱动版本。这个版本的驱动是Java 1.4兼容的,因此适合那些仍...
我们可以使用 OracleClient 命名空间中的 OracleConnection 类来创建连接对象。下面是一个简单的示例代码: ```csharp string connString = "Data Source = .;Initial catalog=数据库名;User ID = oracle用户名 ;...
String url = "jdbc:oracle:thin:@localhost:1521:xe"; String username = "your_username"; String password = "your_password"; try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn...
Oracle 9i Client (Oracle 9i 客户端) 简化版 (不安装Oracle客户端,也可以使用PLSQL Developer 不用安装Oracle客户端也可以使用PLSQL Developer 绿色! 安全! 轻便! 可靠! 1、本软件可作为简单的Oracle9i客户端...
Oracle Database 10g: Administration Workshop II
ojdbc7-12.1.0.2.jar 是Oracle公司为Java开发者提供的一个数据库驱动包,主要用于连接Oracle 12c数据库。Oracle JDBC驱动程序是Java应用程序与Oracle数据库之间通信的桥梁,使得开发者能够在Java环境中执行SQL语句、...
在Oracle数据库管理系统中,删除用户下的对象是一项常见的管理任务,这通常涉及到清理不再需要的数据空间,或者在重新分配用户权限时进行系统维护。本篇将详细介绍如何在Oracle中安全有效地删除用户下的所有对象。 ...
标题中提及的"第2章 Oracle Developer对象综述"可能是一本关于Oracle Developer教程的第二章节,主要介绍Oracle Developer中各种对象的特性与使用方法。 描述部分的内容重复了标题,但从中我们可以推断,文档可能是...