文档首页/ 数据库和应用迁移 UGO/ 用户指南/ 语法转换指南/ 转换错误码/ Oracle To GaussDB 转换错误码/ U0100067: GaussDB 中 CREATE TABLE AS 语法不支持创建分区表
更新时间:2026-03-19 GMT+08:00
分享

U0100067: GaussDB 中 CREATE TABLE AS 语法不支持创建分区表

描述

GaussDB 不支持CREATE TABLE AS 语法不支持创建分区表。

数据库类型与版本

  • 源库类型与版本:UGO 支持的 Oracle 版本。
  • 目标库类型与版本:GaussDB v2.0-8.100 之前的版本。

语法示例

CREATE TABLE sales_interval_part
PARTITION BY RANGE (sale_date)
INTERVAL ('1 MONTH')
(
    PARTITION p_hist VALUES LESS THAN (TO_DATE('2023-01-01', 'YYYY-MM-DD'))
)
AS
SELECT sale_id, sale_date, product_id, region, amount
FROM sales_source
WHERE sale_date >= DATE '2023-01-01';

改造建议

改写思路如下:首先创建分区表,然后insert into select的方式插入数据。

GaussDB修改后:

 CREATE TABLE sales_interval_part (                                                 
     sale_id numeric,                                                               
     sale_date timestamp without time zone,                                         
     product_id text,                                                               
     region text,                                                                   
     amount numeric                                                                 
 )                                                                                         
 PARTITION BY RANGE (sale_date)                                                     
 INTERVAL ('1 mon')                                                                 
 (                                                                                  
     PARTITION p_hist VALUES LESS THAN ('2023-01-01 00:00:00') TABLESPACE pg_default
 );   
insert into sales_interval_part SELECT sale_id, sale_date, product_id, region, amount
FROM sales_source
WHERE sale_date >= DATE '2023-01-01';

相关文档