【问题标题】:generate list of partition name生成分区名称列表
【发布时间】:2012-07-26 07:39:44
【问题描述】:

我想生成一个分区列表,而不必手动键入它们,我还可以选择我想创建多少个分区。 我正在使用按范围分区。 请看下面的例子。

P_PARTITION_20120830 VALUES LESS THAN ('2012-08-30')
P_PARTITION_20120930 VALUES LESS THAN ('2012-09-30')
P_PARTITION_20121030 VALUES LESS THAN ('2012-10-30')
...
and so on

这就是我迄今为止提出的。

select  'P_PARTITION_' || to_char(add_months(sysdate, 1),'YYYYMMDD')
|| ' VALUES LESS THAN ' || to_char(sysdate, '(''YYYY-MM-DD'')') 
from dual;

任何反馈都将不胜感激。 谢谢。

【问题讨论】:

    标签: sql oracle date range database-partitioning


    【解决方案1】:

    这将生成十二个月的分区名称。调整 CONNECT BY 子句中的界限以产生您需要的数字。

    select  'P_PARTITION_' || to_char(add_months(sysdate, level),'YYYYMMDD') 
    || ' VALUES LESS THAN ' || to_char(sysdate, 'YYYY-MM-DD')  
    from dual
    connect by level <= 12; 
    

    【讨论】:

      【解决方案2】:

      您使用的是哪个版本的 Oracle?如果您使用的是 11g,您可以让 Oracle 根据需要为您创建分区。这意味着 DBA 的工作量减少了。

      Oracle 将此称为“间隔分区”。

      语法见http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_7002.htm#BABJDACD,例子见http://docs.oracle.com/cd/E11882_01/server.112/e25523/part_admin001.htm#autoId3

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多