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

ODI 12c如何用Substitution API处理临时表变量用于IKM步骤

ODI 12c 临时表Schema与自定义表名变量提取方案

步骤1:添加变量声明步骤(Set Variable)

在你的IKM中新增两个Set Variable类型的步骤,按顺序配置:

  • 第一个步骤提取Schema:

    • 变量名:xSchema
    • 变量类型:String
    • 赋值表达式:
      <%=odiRef.getTable("L", "SCHEMA", "A")%>
      
      该表达式直接获取临时表所属的Schema(即你案例中的ETL)。
  • 第二个步骤处理并提取自定义表名:

    • 变量名:xTableName
    • 变量类型:String
    • 赋值表达式:
      <%=replace(odiRef.getTable("L", "INT_NAME", "A").substring(odiRef.getTable("L", "INT_NAME", "A").indexOf('.') + 1), "I$", "X$")%>
      
      解析:
      1. odiRef.getTable("L", "INT_NAME", "A") 获取完整临时表名(如ETL.I$_SRCAP6V4TE0SOLTP0UH7SHVGAD28D)
      2. substring(...) 截取.之后的部分,得到I$_SRCAP6V4TE0SOLTP0UH7SHVGAD28D
      3. replace(...) 将开头的I$替换为X$,最终得到X$_SRCAP6V4TE0SOLTP0UH7SHVGAD28D

步骤2:在后续IKM步骤中使用变量

在需要引用该临时表的目标命令或其他步骤里,直接通过以下格式调用变量:

<%=xSchema%>.<%=xTableName%>

例如执行查询或DML操作时:

SELECT * FROM <%=xSchema%>.<%=xTableName%> WHERE update_flag = 'Y'

注意事项

  • 确保两个Set Variable步骤的执行顺序在所有需要使用xSchema和xTableName的步骤之前
  • 变量默认作用域为当前映射执行周期,无需额外配置全局变量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 20:12:12