ORA-29967: Cannot drop an operator binding with dependent objects

文档解释

ORA-29967: Cannot drop an operator binding with dependent objects

Cause: The operator binding that is being dropped has dependent objects.

Action: Either drop the dependent objects first and then issue the ALTER OPERATOR DROP BINDING command or specify the FORCE option with ALTER OPERATOR DROP BINDING.

官方解释

一般处理方法及步骤

1.使用“ALL_DEPENDENCIES”视图查询绑定所依赖的对象。

2.使用“DROP BINDING”语句从绑定中删除依赖的对象。

3.再次尝试使用“DROP BINDING”语句来删除绑定。

常见案例

当用户尝试从一个模式下的绑定中删除一个索引或视图时,就可能会发生这个错误。例如,在下面的例子中,用户正在尝试将绑定与EMP_IDX索引删除,而EMP_IDX索引被EMP_VW视图所依赖:

BEGIN

DBMS_TRANSFORM.DROP_BINDING(‘JOE$DDL’, ‘EMP_IDX’);

END;

/

出现上面的错误消息时,用户可以使用如下查询查找出索引EMP_IDX是被哪一个视图所依赖:

SELECT *

FROM ALL_DEPENDENCIES

WHERE REFERENCED_NAME = ‘EMP_IDX’;

查询显示出EMP_IDX索引被EMP_VW视图所依赖,因此,用户可以使用下面的语句从绑定中删除EMP_VW视图:

BEGIN

DBMS_TRANSFORM.DROP_BINDING(‘JOE$DDL’, ‘EMP_VW’);

END;

/

最后,用户可以使用下面的语句来删除绑定:

BEGIN

DBMS_TRANSFORM.DROP_BINDING(‘JOE$DDL’, ‘EMP_IDX’);

END;

/

你可能感兴趣的