ORA-39222: Unable to create global temporary master table string

文档解释

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’);

你可能感兴趣的