---
title: "OceanBase 数据库 Oracle 租户和 DB2 LUW 数据库之间的同步 DDL | OceanBase 文档中心"
description: OceanBase 数据库 Oracle 租户和 DB2 LUW 数据库之间的同步 DDL 同步 DDL 支持的范围 创建表 create table 注意 不支持 create table as select 。 修改表 alter table 删除表 drop table 清空表 truncate table 表…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*L03BS6f-o40AAAAAAAAAAAAADiGDAQ/original) 迁移服务 OMSV 4.0.2 企业版

# OceanBase 数据库 Oracle 租户和 DB2 LUW 数据库之间的同步 DDL

更新时间：2026-04-14 15:35:47

## 同步 DDL 支持的范围

- 创建表 `create table`

  #### 注意

  不支持 `create table as select`。
 - 修改表 `alter table`
 - 删除表 `drop table`
 - 清空表 `truncate table`
 - 表重命名 `rename table`
 - 创建索引 `create Index`
 - 删除索引 `drop Index`
 - 添加和删除表或列的注释

迁移 DB2 LUW 数据库 10.1 版本的数据至 OceanBase 数据库 Oracle 租户 2.2.76 及以上版本时，仅支持如下类型的同步 DDL：

- 创建表 `create table`
 - 删除表 `drop table`
 - 清空表 `truncate table`
 - 表重命名 `rename table`
 - 添加列 `add column`
 - 修改列 `modify column`

## 同步 DDL 的使用限制

- Create Table

  | 分类 | 描述 |
  | --- | --- |
  | 语法限制 | - 不支持 Create like 语法。   - 不支持带有列类型别名（非原生数据类型）的语法。   - 不支持带有 Select 或者 Subquery 的语法。   - 生成列中，如果包含不兼容函数或复杂表达式可能会报错。   - 不支持包含 XML 类型的语法。 |
  | 列属性处理 | - 目前列属性值重点关注了列名、列类型、null 标志位和 Default 值。   - 不支持生成列属性，DDL 没有处理生成列定义。   - 请谨慎使用带有函数的 Default 值。如果函数不支持执行，则会导致创建表失败。 |
  | 索引处理 | - 建议使用显式的索引定义，包括显式的定义 PK、UK 和 CHECK，不建议使用 CHECK。匿名索引会自动生成名称，可能会造成命名冲突。   - 请谨慎使用函数。如果函数不支持执行，则会导致创建表失败。   - 不建议使用外键。目前 OMS 不支持同步具备外键的表，外键在 DDL 转换中会被丢弃。 |
  | 分区（Partition） | - 仅支持根据时间的 Range 分区同步，对于非时间的 Range 分区会直接平移表达式。不建议在分区使用函数，可能导致语法不兼容，从而导致迁移项目失败。   - Partition 的 range 开头和结尾不支持 `MINVALUE` 和 `MAXVALUE` 等数据源相关的表示。   - DB2 LUW 数据库的 Partition 必须包含 `ending`，并且必须加 `exclusive`，否则会报错。   - DB2 LUW 数据库不支持 Partition 的 `every` 语法扩展，防止计算出错。   - DB2 LUW 数据库的 table 主键加 Partition 列。如果主键和分区键没有交集，则主键会更改为唯一索引来适配 OceanBase 数据库的 Partition 规则约束。   - DB2 LUW 数据库中，`CREATE/ALTER TABLE ADD PARTITION` 必须带 Partition 的名称，不支持匿名 Partition。 |
 - Alter Table

     - DB2 LUW 数据库的 `alter table add primary` 会转换为 OceanBase 数据库 Oracle 租户的 `add unique` 语法。因为 OceanBase 数据库不支持后加主键，您需要在创建表时，显式地指定主键。
     - 如果要 `alter table` 修改 LOB 类型，应该带上 LOB 类型长度，不支持缩小 LOB 类型长度的 `alter table` 操作。
     - DB2 LUW 数据库要求 `unique index` 为非空属性，所以创建 UK 列需要为非空约束。即 `alter table add unique` 时，涉及的列为非空约束。
 - Create Index

  不支持在 OceanBase 数据库端的普通表中，添加 Local 语法。
 - DDL 解析

  请参见 DB2 官方文档执行 DDL 语句，以保证最大程度的兼容。DB2 LUW 解析源端 DDL 有以下操作限制：

     - 目前 DB2 LUW 解析的 DDL 缓存刷新，使用的是回查 Schema 的方式。建议您每次只解析一类 DDL，待解析完成确认无误后再进行下一类 DDL 解析。
     - 对于分区表，请尽量避免频繁的 `create` 和 `drop` 操作。建议您在 `create partition table`，并确认同步正常后，再进行 `drop partition table` 的操作。
     - DB2 LUW 数据库仅支持解析对象名称由字母、下划线和数字组成，需要以字母和下划线开头，且对象名称不能为 DB2 LUW 的关键字。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
