`

oracle之怪现状:删不掉的对象

阅读更多

看以下现象:

 

更新一条表数据出错:

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 数据驱动包 `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 内部培训资料:Oracle 10g 培训材料(18个PPT) 如下: Oracle_数据库_10g性能概述.ppt Oracle_数据库_10g极大提高可用性和网格计算能力.ppt Oracle_数据库_10g的备份与恢复特性-恢复管理器与闪回查询技术....

    C#连接oracle数据库执行简单的增删改查操作.docx

    C#连接Oracle数据库执行简单的增删改查操作 C#连接Oracle数据库执行简单的增删改查操作是指使用C#语言连接Oracle数据库,并执行基本的数据操作,如增删改查。下面是对该操作的详细解释: 一、连接Oracle数据库 要...

    Oracle Database 11g:SQL基础I (学生指南第2册)中文版

    Oracle Database 11g:SQL基础I (学生指南第2册)官方中文版教材

    oracle特有的错误:ORA-01036:非法的变量名/编号

    在Oracle数据库系统中,"ORA-01036:非法的变量名/编号"是一个常见的错误,通常出现在PL/SQL代码或者SQL查询语句中,当你尝试使用一个不正确或者未定义的变量时,Oracle数据库会抛出这个错误。这个错误可能是由于...

    oracle ojdbc6-11.2.0.3.jar

    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_plsql讲义:第12章 其它数据库对象.ppt

    com.oracle.ojdbc7jar包下载.zip

    String url = "jdbc:oracle:thin:@//hostname:port/service_name"; Connection conn = DriverManager.getConnection(url, "username", "password"); ``` 4. **执行SQL**:一旦连接建立,可以通过`Statement`或`...

    oracle报错ora-12541:TNS无监听程序

    oracle报错ora-12541:TNS无监听程序

    面向对象的Oracle

    面向对象的Oracle是一种将面向对象编程的概念应用于Oracle数据库系统的技术,它使得数据库设计和开发更加灵活,能够更好地处理复杂的数据结构和业务逻辑。在Oracle 9i版本中,Oracle引入了面向对象特性,如对象类型...

    oracle jdbc驱动 ojdbc14-10.2.0.4.0下载

    Oracle JDBC驱动程序是连接Java应用程序与Oracle数据库的关键组件。ojdbc14-10.2.0.4.0是Oracle公司为Java开发者提供的一款针对Oracle 10g数据库的JDBC驱动版本。这个版本的驱动是Java 1.4兼容的,因此适合那些仍...

    Oracle四大宝典之一:Oracle Sql基础 中文版

    掌握SQL,对于数据库管理员以及数据库工程师来说,它犹如古代剑客手中的剑,现在士兵手中的枪一样绝对是不可或缺的。 第一章 编写基本的SQL SELECT语句 第二章 约束和排序 第三章 ORACLE SQL 单行函数 第四章 从多...

    c#登陆界面与Oracle数据库连接并增删改查

    我们可以使用 OracleClient 命名空间中的 OracleConnection 类来创建连接对象。下面是一个简单的示例代码: ```csharp string connString = "Data Source = .;Initial catalog=数据库名;User ID = oracle用户名 ;...

    Eclipse对Oracle11g增删改查实例

    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 9i Client (Oracle 9i 客户端) 简化版 (不安装Oracle客户端,也可以使用PLSQL Developer 不用安装Oracle客户端也可以使用PLSQL Developer 绿色! 安全! 轻便! 可靠! 1、本软件可作为简单的Oracle9i客户端...

    Oracle Database 10g: Administration Workshop II

    Oracle Database 10g: Administration Workshop II

    ojdbc7-12.1.0.2.jar

    ojdbc7-12.1.0.2.jar 是Oracle公司为Java开发者提供的一个数据库驱动包,主要用于连接Oracle 12c数据库。Oracle JDBC驱动程序是Java应用程序与Oracle数据库之间通信的桥梁,使得开发者能够在Java环境中执行SQL语句、...

    oracle删除用户下的对象

    在Oracle数据库管理系统中,删除用户下的对象是一项常见的管理任务,这通常涉及到清理不再需要的数据空间,或者在重新分配用户权限时进行系统维护。本篇将详细介绍如何在Oracle中安全有效地删除用户下的所有对象。 ...

    Oracle Developer:第2章 Oracle Developer对象综述.pdf

    标题中提及的"第2章 Oracle Developer对象综述"可能是一本关于Oracle Developer教程的第二章节,主要介绍Oracle Developer中各种对象的特性与使用方法。 描述部分的内容重复了标题,但从中我们可以推断,文档可能是...

    vb.net操作Oracle数据库增删改查以及存储过程调用1

    VB.NET 操作 Oracle 数据库增删改查以及存储过程调用 在本篇文章中,我们将详细介绍如何使用 VB.NET 操作 Oracle 数据库,包括增删改查操作以及存储过程的调用。 VB.NET 操作 Oracle 数据库的准备工作 在开始操作...

Global site tag (gtag.js) - Google Analytics