2013-05-17 37 views
1

我对ODI相当陌生。我正在试着在我的桌子上做SCD。ODI中尺寸缓慢变化

我的源表包含ID,名称和地址,目标表包含的ID,姓名,地址和strt_date

我选择了一个OLAP类型SCD我的目标表。下面SCD行为也适用于每列:

  • 编号:天然关键
  • 名称:上改变覆盖
  • 地址:添加行的变化
  • Strt_date:启动时间戳

我选择IKM作为IKM oracle缓慢更改尺寸

我在执行时遇到错误:

产生的原因:java.sql.SQLSyntaxErrorException:ORA-01747:无效user.table.column,TABLE.COLUMN,或列规格

我丢失了一些重要的一步?

回答

1

我假定你正在寻找SCD型2.你的目标表还需要以下几列

  1. NEW_ID:代理键
  2. END_DATE:结束时间戳
  3. Current_record_flag:当前记录标志

接口中列的映射必须是

  1. NEW_ID:your_sequence.nextval执行上:目标
  2. END_DATE:TO_DATE( “2400年1月1日”, 'DD-MM-YYYY')执行上:目标
  3. Current_record_flag:1执行上:目标

此外,请确保您在以前的实验中没有禁用KM中的任何步骤。它发生在我身上几次!

我也是ODI的新手,但这是我做到的,它的工作原理。

参考

+0

感谢您repling ....我的疑问是,每次当我们使用SCD,包括这些字段是强制性的? – priya77

+0

是的。您可以看到为什么打开IKM Oracle Slowly Changing Dimension,Details选项卡并查看某个步骤的代码(可以说查看旧行)。在这里你可以看到诸如“SCD_NK,SCD_END”之类的东西,当sql脚本创建时它将被实际的列所取代。所以他们是需要的。你有没有设法实施SCD? –

+0

@AP是的......我做到了...... thnx为您宝贵的答案和参考 – priya77