You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle按日期范围分区建表报错(缺失左括号)求解决方案

问题解决:Oracle建表语句“缺失左括号”错误修正

错误原因分析

你的语句存在两个核心语法问题:

  1. 分区定义语法错误:Oracle中使用CREATE TABLE AS SELECT(CTAS)创建分区表时,所有分区定义必须包裹在同一个左、右括号内,你当前每个分区单独用括号的写法不符合语法规范,这是触发“缺失左括号”错误的直接原因。
  2. 分区名重复:存在两个名为TRANSACTION_05的分区,违反对象命名唯一性规则。

修正后的建表语句

CREATE TABLE TMP_WRK_KYC_RPT_FINAL 
PARTITION BY RANGE (T_DATE_DESC)
INTERVAL (NUMTOYMINTERVAL (1,'MONTH')) 
(
    PARTITION TRANSACTION_01 VALUES LESS THAN (TO_DATE('01-FEB-2023','DD-MON-YYYY')),
    PARTITION TRANSACTION_02 VALUES LESS THAN (TO_DATE('01-MAR-2023','DD-MON-YYYY')),
    PARTITION TRANSACTION_03 VALUES LESS THAN (TO_DATE('01-APR-2023','DD-MON-YYYY')),
    PARTITION TRANSACTION_04 VALUES LESS THAN (TO_DATE('01-MAY-2023','DD-MON-YYYY')),
    PARTITION TRANSACTION_05 VALUES LESS THAN (TO_DATE('01-JUN-2023','DD-MON-YYYY')),
    PARTITION TRANSACTION_06 VALUES LESS THAN (TO_DATE('01-JUL-2023','DD-MON-YYYY'))
)
AS SELECT /*+PARALLEL(20)*/ * FROM PROD.WRK_KYC_RPT_FINAL;

关键修改点说明

  • 将所有分区定义合并到一对括号内,分区之间用逗号分隔。
  • 把最后一个重复的TRANSACTION_05分区名改为TRANSACTION_06,保证命名唯一。
  • 调整了语句结构,将PARTITION BY等分区相关子句放在AS SELECT之前,这是Oracle CTAS创建分区表的标准语法顺序。

内容的提问来源于stack exchange,提问作者Axay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 18:02:18