文档解释
ORA-39222: Unable to create global temporary master table string
Cause: Data Pump tried to create a global temporary master table but could not. The errors that follow describe why the table could not be created.
Action: Examine and fix the problems described in the additional errors.
ORA-39222:不能创建全局临时主表
错误描述:
ORA-39222错误消息指出,当使用DBMS_STATS.CREATE_GLOBAL_TEMP_MASTER前,不能在系统中创建全局临时主表。
常见案例
创建系统全局临时主表,例如在脚本中执行以下操作:
BEGIN
DBMS_STATS.CREATE_GLOBAL_TEMP_MASTER(‘MY_GLOBAL_TEMP’,’MY_GLOBAL_TEMP_MASTER’);
END;
当执行该脚本时,可能会收到以下错误消息:
ORA-39222:不能创建全局临时主表”MY_GLOBAL_TEMP_MASTER”
解决方案:
1. 确保将DBMS_STATS.CREATE_GLOBAL_TEMP_MASTER围绕全局临时表的名字使用双引号,如:
BEGIN
DBMS_STATS.CREATE_GLOBAL_TEMP_MASTER(“MY_GLOBAL_TEMP”,”MY_GLOBAL_TEMP_MASTER”);
END;
2. 确保系统中不存在同名表,并且此表名符合Oracle数据库的标识符名称约定中的30个字符的限制。
3. 尝试重新创建全局临时主表,如果没有系统表与它同名:
–运行以下查询,查询是否存在同名表
SELECT OBJECT_NAME FROM ALL_OBJECTS WHERE OBJECT_NAME = ‘MY_GLOBAL_TEMP_MASTER’;
— 如果反映两个名称,那么你需要看看数据库是否有同名表,如果是,请修改表名称或者删除表。
BEGIN
DBMS_STATS.CREATE_GLOBAL_TEMP_MASTER(“MY_GLOBAL_TEMP”,”MY_GLOBAL_TEMP_MASTER”);
END;
4. 如果数据库已经存在全局临时主表,可以使用以下语句进行修改:
DBMS_STATS.ALTER_GLOBAL_TEMP_MASTER(‘MY_GLOBAL_TEMP’,’MY_GLOBAL_TEMP_MASTER’);