gpt4 book ai didi

java - 如何将选择性数据从一个数据库复制到另一个数据库(ORACLE)

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:15:12 24 4
gpt4 key购买 nike

我们需要找到一种方法将某些数据从生产环境复制到我们的开发区域,以便我们可以调试/修复任何问题。有时单个用户相关数据会受到影响。我们必须在开发中复制相同的场景并找到解决方案。目前我们遵循两种方法:-

 1. Check the audit history and try to recreate the similar scenario
in dev. <50% sucess rate in recreating the exact same scenario.
2. Restore+Encrypt the "whole" production into dev and then continue
on the work. It is an overkill if issue impacts only a single user.

所以我试图找到一种方法来仅从生产中选择单个用户数据并将其插入开发区域。

We just have Java and Oracle. Can't use any external tools. Because we dont have license and cannot download freeware due to security issues.

我尝试了以下方法:-

  1. 编写一个 java 代码,它将查询信息模式表以查找表之间的关系并创建如下所示的选择语句:-

select 'insert into TABLE1(C1,C2,C3,C4) values ('||''''||C1||''''||','||coalesce(to_char(C2),'null')||','||''''||C3||''''||','||coalesce(to_char(C4),'null'));'
from TABLE1 where ID='1006' union all
select 'insert into TABLE2(C1,C2,C3,C4) values ('||''''||C1||''''||','||coalesce(to_char(C2),'null')||','||''''||C3||''''||','||coalesce(to_char(C4),'null'));'
from TABLE2 WHERE TABLE1ID in ( select ID FROM TABLE1 where ID='1006') union all
select 'insert into TABLE3(C1,C2,C3,C4) values ('||''''||C1||''''||','||coalesce(to_char(C2),'null')||','||''''||C3||''''||','||coalesce(to_char(C4),'null'));'
from TABLE3 WHERE TABLE2ID in ( select ID FROM TABLE2 WHERE TABLE1ID in ( select ID FROM TABLE1 where ID='1006'));
2. 在生产中使用这组选择,以便您获得一组插入语句作为输出。3.在dev中使用insert语句。

问题:-选择查询变得越来越庞大。总共大约 25 MB :(我们甚至无法在生产环境中执行那个大查询。

对于这个用例,您能建议更好的方法吗?oracle 本身是否允许选择性数据导出?或者我应该以任何其他方式编写我的 Java 代码?

最佳答案

我们使用类似这样的方法将记录从一个数据库移动到另一个数据库:

从 username/password@database1 复制到 username/password@database2 insert target_table using select * from source_table where where_clause_goes_here;

关于java - 如何将选择性数据从一个数据库复制到另一个数据库(ORACLE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33810159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com