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;
/