[toc]
ORACLE迁移中的一些经验(一)批量导出sequence
批量导出squence
在网上找到这样一条语句:
select 'create sequence ' || sequence_name || ' minvalue ' || min_value ||
' maxvalue ' || max_value || ' start with ' || last_number ||
' increment by ' || increment_by || (case
when cache_size = 0 then
' nocache'
else
' cache ' || cache_size
end) || ';'
from dba_sequences;
但实际操作中,很多时候避免新库取值是不重复使用老库序列,需要增大序列的值,所以修改上面语句
select 'create sequence '||sequence_name||
' minvalue '||min_value||
' maxvalue '||max_value||
' start with '|| to_number(last_number +1000) ||
' increment by '||increment_by||
(case when cache_size=0 then ' nocache' else ' cache '||cache_size end) ||';' from dba_sequences;
当然增加的数量要更加实际的情况而定(MAX_VALUE的值),我这里的是增加1000.
ORACLE迁移中的一些经验(二)批量导出job,并在目标库创建
1、 批量导出创建job,语句如下:
SELECT 'SYS.dbms_job.submit(job => :job,what => '''||what||''',next_date => to_date('''||to_char(next_date,'dd-mm-yyyy hh24:mi:ss')||''', ''dd-mm-yyyy hh24:mi:ss''),interval => '''||INTERVAL||''');' FROM dba_jobs;
例子:
SQL> SQL> SELECT 'SYS.dbms_job.submit(job => :job,what => '''||what||''',next_date => to_date('''||to_char(next_date,'dd-mm-yyyy hh24:mi:ss')||''', ''dd-mm-yyyy hh24:mi:ss''