oracle分页查询用group oracle分页rowidy 报错(oracle分页rowid)

平时工作中所遇到的问题,今天为大家整理一下,废话不多说,直接上代码

oracle分页查询用group oracle分页rowidy 报错(oracle分页rowid)

建立存储过程后,需创建Mysql定时任务,来每天自动执行,我自动的版本,默认晚上11点自动调用存储过程

oracle分页查询用group oracle分页rowidy 报错(oracle分页rowid)

注:如表中存在数据,必须手动对已有数据建立分区,且分区为主键或者联合主键,下面直接贴代码,可根据自己实际情况进行修改。

— 增加新分区

— 不同于insert into A select from B,A必须存在。

SELECT max(cast(replace(partition_description, '''', '') AS date)) AS val

INTO v_maxdate

FROM INFORMATION_SCHEMA.PARTITIONS

WHERE TABLE_NAME = 'tb_visit' AND TABLE_SCHEMA = 'fzmy'; # 目标表 数据库实例名称,根据实际情况添加

set v_sysdate = sysdate(); # 赋值v_sysdate为当前时间

— INTERVAL 时间计算的关键字

— 当前写法默认创建三天后的分区表 可更改

WHILE v_maxdate <= (v_sysdate + INTERVAL 1 DAY) DO

SET v_pt = date_format(v_maxdate + INTERVAL 1 DAY , '%Y%m%d');

SET v_maxval = v_maxdate + INTERVAL 2 DAY;

SET add_sql = concat('alter table tb_visit add partition (partition p', v_pt, ' values less than(''', v_maxval, '''))'); # tb_visit 目标表,根据实际情况修改

SET @sql=add_sql;

PREPARE stmt FROM @sql; # 分配给这条SQL语句一个名字供之后调用

EXECUTE stmt; # 命令执行

DEALLOCATE PREPARE stmt; # 执行完后,释放掉

SET v_maxdate = v_maxdate + INTERVAL 1 DAY; # 最大值 加一操作

END WHILE;

— 查找最早的分区

SELECT min(cast(replace(partition_description, '''', '') AS date)) AS val

INTO v_mindate

FROM INFORMATION_SCHEMA.PARTITIONS

WHERE TABLE_NAME = 'tb_visit' AND TABLE_SCHEMA = 'fzmy';# tb_visit 目标表,根据实际情况修改

— 删除30天前的旧分区

WHILE v_mindate <= (v_sysdate – INTERVAL 30 DAY) DO

SET v_pt = date_format(v_mindate , '%Y%m%d');

SET del_sql = concat('alter table tb_visit drop partition p', v_pt); # tb_visit 目标表,根据实际情况修改

set @sql=del_sql;

PREPARE stmt FROM @sql;

EXECUTE stmt;

DEALLOCATE PREPARE stmt;

SET v_mindate = v_mindate + INTERVAL 1 DAY;

END WHILE;

END

————————————- 此处为分界线 ——————————————-

— 创建定时任务

create event ceshi_partition # 定时任务名称

— 每天晚上23点执行(待验证)

ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 23 HOUR)

on completion preserve disable

do call p_partition_test(); # 调用存储过程,此处为存储过程名称

领取300本育儿电子书,30门名师育儿大课,添加 微信:egm229  备注:Y

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1065899103@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.cxyyzs.cn/3500.html