如何每月对数据库表进行分区?

时间:2019-07-02 19:30:47

标签: database oracle cron sh sqlplus

每个月我们都要为所述月份的事务划分一个表,并且我们想自动化该过程,我正在考虑使用crontab,但是问题在于我需要一些参数,例如date和分区表即可。

这是一台运行SunOS的服务器,但除默认sh以外,我不能使用其他shell,这使得编写shell脚本来运行查询有点麻烦,但这仍然是我想要的。

这是我们对表进行分区的方式:

ALTER TABLE SCHEME.TABLE ADD PARTITION "NAME_201905"  VALUES LESS THAN
(TO_DATE('2019-05-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
  COMPRESS FOR OLTP LOGGING
  STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "TABLESPACE";

我们需要一种每月执行一次查询的方法,并且每个参数都应与当前日期匹配。

1 个答案:

答案 0 :(得分:0)

创建或更改表以具有间隔分区。此要求将自动得到满足。

您可以设置小时,天,周,月或年的时间间隔。

每次出现新月的数据时,Oracle都会自动创建一个新分区。