【问题标题】:looking for a way to test multiple tables across 2 oracle databases寻找一种跨 2 个 oracle 数据库测试多个表的方法
【发布时间】:2017-09-21 18:12:59
【问题描述】:

我正在寻找一个可能运行脚本的帮助,我可以在其中测试两个具有相同名称但位于不同数据库上的不同表的属性。我们有一个开发数据库和一个生产数据库。在该特定表的相同架构中,两者都有相同的表。

例如devdb 有一个名为data.abc_001 的表。 proddb 也有一个名为 data.abc_001 的表。我想做的是在一个名为'updated'的属性上找到两者之间的差异。另一个问题是,由于我们的数据结构,我们有data.abc_001data.abc_999。我认为最好的结果是有一个包含 2 列的表(每个 db 一个,在它们不同的地方具有“更新”的值)。我正在使用 Toad 与 DB 进行交互。

【问题讨论】:

  • “在 2 个表上测试一个属性”和“在一个属性上找出差异”是什么意思...?你到底需要找到什么?要么使用精确的技术语言(“在两个表上测试一个属性”和“找出一个属性的差异”是不是),或者使用通用语言但详细描述您需要的内容。跨度>
  • 数据库链接...您是否尝试过探索使用数据库链接的想法?

标签: python oracle toad


【解决方案1】:

如果服务器可以相互访问,我认为最简单的方法是从 prod 服务器执行以下操作:

CREATE DATABASE LINK "DEV"
CONNECT TO data
IDENTIFIED BY "my_password"
USING '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)
  (Host=dev_server)
  (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=DEV)))';

create table abc_001_differences as
select a.updated as prod_updated, b.updated as dev_updated
  from abc_001 a
  full outer join abc_001@"DEV" b on a.primary_key = b.primary_key
;

您可能会考虑的另一个选项是此 TOAD 功能:打开“数据库”菜单并转到“比较”>“单个对象”。选择您的连接/模式/表,然后浏览选项。如果您更喜欢 GUI,它是一个强大的工具。

【讨论】:

    猜你喜欢
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 2015-03-11
    相关资源
    最近更新 更多