没有合适的资源?快使用搜索试试~ 我知道了~
oracle按时间自动分区后,将自分区的系统名根据时间重命名。如:SYS_P20000重命名为P20190101。 输入两个参数表名 +类型 1:日 2:月 3:年 默认日期 把后面注释的执行语句释放,测试打印的时候注释了,上传的时候忘了 切记:没数据的子分区会被删除
资源推荐
资源详情
资源评论
create or replace procedure prc_updat_partname(v_tablename varchar2,v_type varchar2) is
v_sum Number;
v_str varchar2(2000);
v_types varchar2(8);
V_COL varchar2(20);
V_RESTR varchar2(2000);
V_RENAME VARCHAR2(10);
begin
if v_type = '1' then
v_types:='YYYYMMDD';
ELSIF v_type='2' then
v_types:='YYYYMM';
ELSIF v_type='3' then
v_types:='YYYY';
else
v_types:='YYYYMM';
end if;
--dbms_output.put_line(v_types);
execute immediate 'SELECT COLUMN_NAME FROM user_PART_KEY_COLUMNS t where NAME=upper('''||v_tablename||''')' into V_COL;
for idx in (select table_name,partition_name from user_tab_partitions t where t.table_name = v_tablename and partition_name like 'SYS%') loop
V_STR:='SELECT count(1) FROM '||v_tablename||' partition('||idx.partition_name||') where rownum=1';
execute immediate V_STR into v_sum;
if v_sum=1 then
V_STR:='SELECT TO_CHAR('||V_COL||','''||v_types||''') FROM '||v_tablename||' partition('||idx.partition_name||') where rownum=1';
execute immediate V_STR into V_RENAME;
V_RESTR:='alter table '||v_tablename||' rename partition '||idx.partition_name||' to P'||V_RENAME;
v_sum Number;
v_str varchar2(2000);
v_types varchar2(8);
V_COL varchar2(20);
V_RESTR varchar2(2000);
V_RENAME VARCHAR2(10);
begin
if v_type = '1' then
v_types:='YYYYMMDD';
ELSIF v_type='2' then
v_types:='YYYYMM';
ELSIF v_type='3' then
v_types:='YYYY';
else
v_types:='YYYYMM';
end if;
--dbms_output.put_line(v_types);
execute immediate 'SELECT COLUMN_NAME FROM user_PART_KEY_COLUMNS t where NAME=upper('''||v_tablename||''')' into V_COL;
for idx in (select table_name,partition_name from user_tab_partitions t where t.table_name = v_tablename and partition_name like 'SYS%') loop
V_STR:='SELECT count(1) FROM '||v_tablename||' partition('||idx.partition_name||') where rownum=1';
execute immediate V_STR into v_sum;
if v_sum=1 then
V_STR:='SELECT TO_CHAR('||V_COL||','''||v_types||''') FROM '||v_tablename||' partition('||idx.partition_name||') where rownum=1';
execute immediate V_STR into V_RENAME;
V_RESTR:='alter table '||v_tablename||' rename partition '||idx.partition_name||' to P'||V_RENAME;
资源评论
caokill001
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- YOLO-yolo资源
- 适用于 Java 项目的 Squash 客户端库 .zip
- 适用于 Java 的 Chef 食谱.zip
- Simulink仿真快速入门与实践基础教程
- js-leetcode题解之179-largest-number.js
- js-leetcode题解之174-dungeon-game.js
- Matlab工具箱使用与实践基础教程
- js-leetcode题解之173-binary-search-tree-iterator.js
- js-leetcode题解之172-factorial-trailing-zeroes.js
- js-leetcode题解之171-excel-sheet-column-number.js
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功