我可以使用 CREATE TABLE 语句将分区的 table 迁移到 Oracle 中的非分区的 table 吗?
Can I migrate a partitioned table to a non-partitioned table in Oracle with the CREATE TABLE statement?
我有一个 Oracle 11g 分区 table,有 10 个分区用于存储十年的数据,每个分区都有自己的 table空间,按范围分区。每个年分区包含 12 个月分区。
在使用 ora2pg 将所有数据库迁移到 Postgresql 10.7 之前,我想将此 table 转换为非分区 table。
我读到我可以先通过 expdp 备份这个 table 然后使用 impdp 的 PARTITIONS_OPTIONS 参数选项导入它。
但是是否也可以将以下语句用作严格等效的语句?
CREATE TABLE IF NOT EXISTS non_partitioned_table AS SELECT * FROM partitioned_table
我不会丢失任何数据,但是索引呢?
这两个程序之间还有其他区别吗?
您发布的语法在 Oracle 中不存在(那里没有 if not exists
子句)。
因此,您
create table non_partitioned_table as select * from partitioned_table;
如果名称为 non_partitioned_table
的对象已经存在,该命令将失败。
不会自动创建索引 - 您必须手动创建它们,但是 - 您无论如何都会在 PostgreSQL 中创建,不是吗?为什么要在 Oracle 中打扰,因为您不会将 table 用于任何事情(迁移目的除外);对吧?
您可以使用 expdp 导出分区 table。
然后使用带有 MERGE 选项的 impdp 将其导回非分区 table。如何将数据导入 postgres 取决于您。
expdp TABLES=scott.part_tab USERID="' / as sysdba'" DIRECTORY=test_dir DUMPFILE=part_tab.dmp LOGFILE=part_tab.log
impdp USERID="'/ as sysdba'" TABLES=scott.part_tab DIRECTORY=test_dir DUMPFILE=part_tab.dmp LOGFILE=imp_part_tab.log REMAP_SCHEMA=scott:testuser
我有一个 Oracle 11g 分区 table,有 10 个分区用于存储十年的数据,每个分区都有自己的 table空间,按范围分区。每个年分区包含 12 个月分区。
在使用 ora2pg 将所有数据库迁移到 Postgresql 10.7 之前,我想将此 table 转换为非分区 table。
我读到我可以先通过 expdp 备份这个 table 然后使用 impdp 的 PARTITIONS_OPTIONS 参数选项导入它。
但是是否也可以将以下语句用作严格等效的语句?
CREATE TABLE IF NOT EXISTS non_partitioned_table AS SELECT * FROM partitioned_table
我不会丢失任何数据,但是索引呢?
这两个程序之间还有其他区别吗?
您发布的语法在 Oracle 中不存在(那里没有 if not exists
子句)。
因此,您
create table non_partitioned_table as select * from partitioned_table;
如果名称为 non_partitioned_table
的对象已经存在,该命令将失败。
不会自动创建索引 - 您必须手动创建它们,但是 - 您无论如何都会在 PostgreSQL 中创建,不是吗?为什么要在 Oracle 中打扰,因为您不会将 table 用于任何事情(迁移目的除外);对吧?
您可以使用 expdp 导出分区 table。
然后使用带有 MERGE 选项的 impdp 将其导回非分区 table。如何将数据导入 postgres 取决于您。
expdp TABLES=scott.part_tab USERID="' / as sysdba'" DIRECTORY=test_dir DUMPFILE=part_tab.dmp LOGFILE=part_tab.log
impdp USERID="'/ as sysdba'" TABLES=scott.part_tab DIRECTORY=test_dir DUMPFILE=part_tab.dmp LOGFILE=imp_part_tab.log REMAP_SCHEMA=scott:testuser