我正在尝试对现有表进行分区而不使用 Oracle 删除和重新创建它。
我的 Oracle 10g 支持应用程序中的 DBMS_REDEFINITION 包
我已经按照 oracle 文档中的说明向用户授予了所有必要的权限。
grant CREATE ANY TABLE to DDUSER;
grant ALTER ANY TABLE to DDUSER;
grant DROP ANY TABLE to DDUSER;
grant LOCK ANY TABLE to DDUSER;
grant SELECT ANY TABLE to DDUSER;
grant execute on dbms_redefinition to DDUSER;
我能够执行以下程序
begin
Dbms_Redefinition.Can_Redef_Table('DDUSER', 'TABLE');
end;
This throws no error neither any result (Assuming this is as expected)
但是当我试图跑步时
BEGIN
DBMS_REDEFINITION.start_redef_table(
uname => 'DDUSER',
orig_table => 'TABLE',
int_table => 'TABLE_1');
END;
我收到以下错误:
错误报告:
ORA-01031:权限不足
ORA-06512:在“SYS.DBMS_REDEFINITION”第 50 行
ORA-06512:在“SYS.DBMS_REDEFINITION”第 1343 行
ORA-06512:在第 2 行
01031.00000 -“权限不足”
你能帮我吗,我在这里缺少什么特权?或者是否知道在包 DBMS_REDEFINITION 的第 50 行中执行了哪个操作?