Ora2pg如何按表拆分导出DDL为多个独立文件
ora2pg按单表拆分导出DDL实现方案
ora2pg原生支持按单表维度分别导出DDL,无需手动拆分合并导出文件,有两种成熟实现方式:
- 开启内置自动拆分能力
找到你使用的ora2pg配置文件(默认名为ora2pg.conf),修改或新增配置项SPLIT_FILE 1后正常执行导出命令即可。开启该配置后,ora2pg不会将所有对象DDL写入同一个输出文件,会自动将每个独立数据库对象(包含单张表的DDL、关联约束、索引等)拆分为独立SQL文件,存储到你指定的输出目录下,表相关的DDL文件默认以TABLE_表名.sql的规则命名。
如果你不想修改静态配置,也可以直接在执行导出命令时追加--split参数临时开启拆分能力,示例命令:
注意:执行前请确认配置中ora2pg -c ora2pg.conf -t TABLE --split -o ./table_ddl_dir/TYPE参数设置为TABLE,否则会同步将视图、序列、函数、存储过程等非表对象也拆分为单独文件导出。 - 单表指定逐个导出
如果你需要自定义导出文件命名规则,或者只需要导出部分指定表,可以使用--object参数指定单次导出的单表名,每次执行仅导出对应表的DDL,可自由定义输出文件名。单表导出示例命令:
如果需要批量导出全量表到独立文件,可以先查询Oracle中目标Schema下的表名列表,通过Shell/Python写简单循环遍历表名,重复执行上述单表导出命令即可。# 导出EMP表DDL到独立文件 ora2pg -c ora2pg.conf -t TABLE --object EMP -o emp_ddl.sql
内容的提问来源于stack exchange,提问作者Udesh Sendanayake
相关产品推荐
相关产品推荐

