ora2pg导出Oracle数据时双引号去除及INSERT语句顺序问题咨询
关于ora2pg使用的两个问题解答
问题1:生成的SQL中表名、列名带双引号的解决方法
可以通过修改.conf配置文件实现该需求:
- 在配置文件中找到
QUOTE_IDENTIFIERS配置项,默认值为1(开启标识符自动加双引号),将其修改为QUOTE_IDENTIFIERS 0即可关闭双引号添加逻辑。
注意:关闭该配置的前提是你的所有表名、列名不存在大小写混合、特殊字符等PostgreSQL需要用双引号包裹才识别的命名场景,否则可能会出现导入时标识符识别错误的问题。
问题2:INSERT语句顺序不符合外键约束的原因
这是ora2pg的默认运行机制,不是你的配置错误:
- ora2pg默认导出INSERT语句时,会按照表名的字母排序生成插入语句,不会主动识别外键依赖关系调整顺序。
- 你可以通过修改配置文件解决该问题:找到
ORDER_BY_DEPENDENCIES配置项,将其设置为ORDER_BY_DEPENDENCIES 1,开启后ora2pg会解析表之间的外键依赖关系,优先生成父表的插入语句,再生成子表的插入语句。 - 备选方案:如果依赖关系复杂调整后仍有问题,也可以在导入SQL前先禁用目标库的外键约束,全部数据导入完成后再重新开启外键约束,规避顺序问题。
内容的提问来源于stack exchange,提问作者firstpostcommenter
相关产品推荐
相关产品推荐

