问题描述
嗨,使用此DBMS_REDEFINITION.start_redef_table包时,有什么方法可以为自动分区赋予名称。
提前谢谢你。
提前谢谢你。
专家解答
不幸的是没有,但是一旦操作完成,您可以根据自己的需要重命名分区。
可以使用一些plsql (下面的伪代码) 来查看定义,例如
在表处于活动状态时,请稍微小心重命名分区。你永远不会引用现有的名字。
可以使用一些plsql (下面的伪代码) 来查看定义,例如
declare
l_stamp_clause varchar2(200);
l_new_parname varchar2(200);
begin
for i in ( select t.table_name, p.partition_name, p.high_value, t.owner
from dba_part_tables t,
dba_tab_partitions p
where t.owner = ...
and t.partitioning_type = 'RANGE'
and t.interval is not null
and t.owner = p.table_owner
and t.table_name = p.table_name
and p.partition_name like 'SYS\_P%' escape '\'
and t.table_name not like 'SYS\_P%' escape '\'
) loop
l_stamp_clause := i.high_value;
execute immediate
'select to_char('||l_stamp_clause||',''YYYYMM'') from dual' into l_new_parname;
l_new_parname := 'MEANINGFUL_NAME'||'_p'||l_new_parname;
execute immediate 'alter table '||i.owner||'.'||i.table_name||' rename partition '||i.partition_name||' to '||l_new_parname;
end loop;
end;
在表处于活动状态时,请稍微小心重命名分区。你永远不会引用现有的名字。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




