You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Ora2Pg将单个源列映射为两个目标列?

使用Ora2Pg实现单源列到多目标列的映射方案

场景一:拆分源列到两个目标列

Ora2Pg的基础列映射规则不支持直接拆分,但可以通过自定义抽取查询绕开这个限制,完全可控:

  • 针对Oracle源表,用字符串函数拆分firstName列,写好自定义查询:
    SELECT 
      -- 取第一个空格前的内容作为目标firstName
      SUBSTR(firstName, 1, INSTR(firstName, ' ') - 1) AS firstName,
      -- 取第一个空格后的内容作为目标lastName
      SUBSTR(firstName, INSTR(firstName, ' ') + 1) AS lastName,
      -- 别忘了加上其他需要同步的列
      id, email, ...
    FROM your_source_table;
    
  • 在Ora2Pg配置里,把TABLE参数替换成这个查询,或者用QUERY_FILE指定保存该查询的文件。工具会基于这个查询生成目标表的插入逻辑,自动把拆分后的字段对应到目标的两个列。

场景二:单源列映射到多个目标列

这个有两种简单实现方式:

方式一:自定义查询(最直接)

直接在抽取查询里重复选取源列,用别名对应不同的目标列:

SELECT 
  lastUpdatedBy AS lastUpdatedby,
  lastUpdatedBy AS createdBy,
  -- 其他需要同步的列
  id, firstName, ...
FROM your_source_table;

方式二:配置文件规则(无需改查询)

如果不想写自定义查询,可在Ora2Pg的配置文件里组合使用两个参数:

# 先把源列映射到第一个目标列
COLUMN_RENAME = your_source_table.lastUpdatedBy:lastUpdatedby
# 添加第二个目标列,默认值直接引用源列的值
ADD_COLUMN = your_source_table.createdBy:VARCHAR(100):DEFAULT lastUpdatedBy

注意要确保目标表的createdBy列允许设置默认值,工具生成的DDL和同步逻辑会自动处理赋值。

内容的提问来源于stack exchange,提问作者Cristina Rosca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 19:12:08