如何在 ETL 中固定 CREATE_DATE 并改变 UPDATE_DATE?
How to get fixed CREATE_DATE and varying UPDATE_DATE in ETL?
我想在数据库中的每个 table 中加载两列 CREATE_DATE
和 UPDATED_DATE
。 CREATE_DATE
应该告诉我 date/time 最初的一次性完整数据加载发生的时间,但 UPDATED_DATE
应该根据每次增量加载而改变。在不更改映射的情况下执行此操作的最佳方法是什么?任何可以动态执行此操作的 SQL 函数或查询?
我不确定您为什么要避免更改映射逻辑...这里有一个为此类处理量身定制的工具。如果您已经在映射中有办法区分插入和更新,那么您只需在表达式中使用 SYSTIMESTAMP 并在 2 个目标之间做出决定,连接到 CREATE_DATE And UPDATED_DATE FOR INSERTS 和 UPDATED_DATE更新。
如果您坚持使用 SQL,请在此处查看 Gordon 的 post How to compute a column value in oracle 10g?,但要知道在您的数据库上设置触发器会降低性能
我想在数据库中的每个 table 中加载两列 CREATE_DATE
和 UPDATED_DATE
。 CREATE_DATE
应该告诉我 date/time 最初的一次性完整数据加载发生的时间,但 UPDATED_DATE
应该根据每次增量加载而改变。在不更改映射的情况下执行此操作的最佳方法是什么?任何可以动态执行此操作的 SQL 函数或查询?
我不确定您为什么要避免更改映射逻辑...这里有一个为此类处理量身定制的工具。如果您已经在映射中有办法区分插入和更新,那么您只需在表达式中使用 SYSTIMESTAMP 并在 2 个目标之间做出决定,连接到 CREATE_DATE And UPDATED_DATE FOR INSERTS 和 UPDATED_DATE更新。
如果您坚持使用 SQL,请在此处查看 Gordon 的 post How to compute a column value in oracle 10g?,但要知道在您的数据库上设置触发器会降低性能