【发布时间】:2020-08-06 06:40:28
【问题描述】:
我的任务是将数据从另一个数据库迁移到 Oracle 数据库。
并且来自先前数据库的数据具有审计信息,即使用 update_time 和 update_user 跟踪记录的创建/更新。为简单起见,我们假设我之前所说的数据库是以下格式的 excel 文件:
Key | Value | Update_Time | Update_User |
----|-------|-------------|-------------|
a | 1 | 23/04/2020 | user1 |
b | 2 | 21/04/2020 | user2 |
a | 3 | 20/04/2020 | user1 |
a | 4 | 19/04/2020 | user5 |
a | 5 | 18/04/2020 | user2 |
考虑到数据现在被保存到下面 Oracle 中的新表中,将数据移动到 Oracle 中以便用户仍然可以查询这些审计信息以及新审计的最佳做法是什么? Oracle 是否为此提供任何本机解决方案?我尝试使用 Oracle Flashback,但不确定如何包含以前的审计,因为据我了解,从现在开始我们只能查询 Flashback 的数据更改。理想情况下,我只想像这样在 Oracle 中存储最新的数据表,因为它们是实际的活动数据:
Key | Value | Last_Update_Time | Last_Update_User |
----|-------|------------------|------------------|
a | 1 | 23/04/2020 | user1 |
b | 2 | 21/04/2020 | user2 |
假设用户在 2020 年 4 月 24 日继续使用键 b 编辑行,然后我想获取这些结果以进行 UI 显示(目前我正在使用 python sqlalchemy 访问数据库,但是使用 sql 查询的解决方案一开始应该没问题)
Key | Value | Update_Time | Update_User |
----|-------|-------------|-------------|
b | 7 | 24/04/2020 | user2 | ---> this is an update on the new oracle table above
a | 1 | 23/04/2020 | user1 | ---> those rows below I want to somehow load into the oracle without explicitly create a new table for it
b | 2 | 21/04/2020 | user2 |
a | 3 | 20/04/2020 | user1 |
a | 4 | 19/04/2020 | user5 |
a | 5 | 18/04/2020 | user2 |
更改后,Oracle中的主要数据表应如下所示
Key | Value | Last_Update_Time | Last_Update_User |
----|-------|------------------|------------------|
a | 1 | 23/04/2020 | user1 |
b | 7 | 24/04/2020 | user2 |
【问题讨论】:
-
所以你需要一个 oracle 查询?
-
是的,那将是理想的。我正在使用 python sqlalchemy 访问新的 oracle db,但是带有 sql 查询的解决方案对于开始来说会很棒