Database DataStage正在获取此错误“;ORA-02429:无法删除用于强制执行唯一/主键的索引,但它在“0”之前工作正常;

Database DataStage正在获取此错误“;ORA-02429:无法删除用于强制执行唯一/主键的索引,但它在“0”之前工作正常;,database,oracle,indexing,key,datastage,Database,Oracle,Indexing,Key,Datastage,我有个大问题。我像往常一样执行DataStage作业,工作正常,但出乎意料的是,我在所有具有Oracle阶段目标的作业中都出现了错误 错误如下: ORA-02429: Cannot drop index used for enforcement of unique/primary key 无论是哪个表或哪个数据库,每个作业都有该错误。我们尝试重新启动DataStage引擎/服务层Oracle db,但没有任何效果 有什么想法吗?事情的发生通常不是因为。下面是可能发生的事情 首先,你直

我有个大问题。我像往常一样执行DataStage作业,工作正常,但出乎意料的是,我在所有具有Oracle阶段目标的作业中都出现了错误

错误如下:

 ORA-02429: Cannot drop index used for enforcement of unique/primary key    
无论是哪个表或哪个数据库,每个作业都有该错误。我们尝试重新启动DataStage引擎/服务层Oracle db,但没有任何效果


有什么想法吗?

事情的发生通常不是因为。下面是可能发生的事情

首先,你直到最近的情况是:有一个索引你可以删除:

SQL> create table test (id number);

Table created.

SQL> create index i1 on test (id);

Index created.

SQL> drop index i1;

Index dropped.

让我们再次创建它:

SQL> create index i1 on test (id);

Index created.
同时,有人决定在索引列上创建主键(索引已经存在,所以主键将使用它;如果它不存在,
altertable
将创建它):

当您尝试删除该索引时,会发生以下情况:

SQL> drop index i1;
drop index i1
           *
ERROR at line 1:
ORA-02429: cannot drop index used for enforcement of unique/primary key


SQL>
这意味着:先放下主键:

SQL> alter table test drop constraint pk_test;

Table altered.

SQL> drop index i1;

Index dropped.

SQL>

因为你有一份这样做的工作,事情可能不再那么简单了。您可以创建一个过程来查询元数据并动态地执行此操作,但是。。。首先调查“它正在工作”和“它不再工作”之间发生的情况。

您检查过这个吗@VBokšić这不是问题所在。正如我所说,我的作业运行良好,表没有关键约束HMMM,您说:“但出乎意料的是,我的所有作业中都有一个错误”,所以工作不正常?@VBokšIć我有多个作业运行良好,如果再次运行:error。没有人对桌子做什么。这就是为什么我在问题中添加了DataStage,因为这可能是一个与修补程序或配置文件损坏相关的问题。如果启用了审核,请尝试查询
dba\u audit\u trail
。如果再次运行,您可能会发现当约束出现时,我有多个工作正常的作业:error。没有人对桌子做什么。这就是为什么我在问题中添加了DataStage,因为这可能是一个与修补程序或配置文件损坏有关的问题,这就是我最后一句话的意思。事情不会自行“破裂”。有人做了什么;找出是谁。
SQL> alter table test drop constraint pk_test;

Table altered.

SQL> drop index i1;

Index dropped.

SQL>