我们的主要源数据库为 Oracle 11gR2,目标数据库为 SAP HANA。我们正在尝试测试 SAP - Sybase 复制服务器,以便从主 ORACLE 复制到目标 HANA。
我们需要向 HANA 表添加额外的列,例如 RECORD_DATE 和 LAST_MODIFIED_DATE。是否可以向主数据库中不存在的目标表添加转换或额外列。
此致
我假设您要捕获由 Repserver 维护用户(在 HANA 数据库中)插入/更新的记录的审计数据。
虽然默认列(用于插入;与 Shivam 讨论过)将起作用,但对于更新,您有几个选项:
HANA 表上的更新触发器 [我不使用 HANA,所以我不知道这是否可行]
将更新列定义为(物化的)计算列,相关函数负责在修改表中的其他列时获取当前日期/时间[虽然这在 Sybase ASE 中是可行的,但我不知道这是否是在HANA中可行]
(在 repserver 中)为该表上的 rs_update 函数创建一个自定义函数字符串,该字符串模拟标准 rs_update 函数字符串,并添加了 LAST_MODIFIED_DATE = getdate() 的更新(将 getdate() 替换为 HANA 的当前日期/时间等效项) [有几种不同的方法可以做到这一点,具体取决于 SRS 版本、HANA 特定的函数字符串可以做什么,以及个人偏好——如果自定义函数字符串将是不可能的,那么在这一点上还有很多事情要做或者你已经有了一个可以接受的解决方案]
您是否考虑在复制期间添加这些字段。或者想在复制后合并它们。如果在复制后您想合并它们,只需转到 Hana Studio 并制作一个信息视图以从不同的表中获取合并或简单连接的数据。
如果源系统中不存在该表,则不要复制,而是制作一个 Excel 平面文件,并使用 hana studio 的 RHS 上的 Import 选项将其导入 Hana。
在 Hana 中更改表定义的唯一方法是使用 Alter Table SQL 语句而不使用其他快捷方式。或者只是导入并加入。