文档解释
ORA-31504: cannot alter or drop predefined change source
Cause: The caller attempted to alter or drop one of the predefined change sources HOTLOG_SOURCE or SYNC_SOURCE.
Action: Do not attempt to alter or drop a predefined change source or correct call to supply the name of a user-created change source.
ORA-31504错误是由Oracle Database在尝试更改或删除预定义的Change Source时引发的错误。
OracleDatabase将promptthis错误,以示尝试通过更改促销和/或删除其属性的ChangeSource的尝试失败。
官方解释
此ORA-31504错误表明,操作非法,Oracle不允许你更改或删除预定义的Change Source。系统保留这些Change Source以防止意外的改变(因为有些Change Source可能会影响数据库的正确运行)。
常见案例
当尝试使用DBMS_REPAIR包或DBMS_CHANGE_MANAGEMENT包在Oracle Database上更改或删除具有预定义Change Source时,可能会出现ORA-31504错误。
一般处理方法及步骤
1、永久删除不必要的Change Source:如果不需要某些Change Source,则可以手动删除它们,方法是:
Dbms_Change_Management.Drop_Change_Source(change_source_name => );
2、只读Change Source:如果被保留的Change Source不干涉你的维护操作,则可以将其变为只读,方法是:
Dbms_Change_Management.Make_Change_Source_Read_Only(change_source_name => );
3、确保改变是可用的:如果需要改变Change Source以支持任何操作,请确保你拥有必要的许可,以便修改Change Source时不会受到限制。