Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于验证两个数据库的SQL脚本_Sql_Database_Oracle - Fatal编程技术网

用于验证两个数据库的SQL脚本

用于验证两个数据库的SQL脚本,sql,database,oracle,Sql,Database,Oracle,我的任务是编写一个脚本来验证第三方每晚下载时从一个数据库(db1)下载到另一个数据库(db2)的数据 db1是规范化的,而db2不是。数据应该是1比1,我的公司希望我证明这一点,因为这些信息至关重要,必须是正确的 我从未做过这种事情,也从未使用过Oracle(我通常使用的是MSSQL),因此我想知道: 最佳方法/最佳实践代码/文档是什么 明智 使用Oracle时我应该注意什么 我认为我比飞鸟二世先进一点,但我只做了几年的SQL开发。因此,您可能想到的任何其他方法都会大有帮助。如果我正确理解您

我的任务是编写一个脚本来验证第三方每晚下载时从一个数据库(db1)下载到另一个数据库(db2)的数据

db1是规范化的,而db2不是。数据应该是1比1,我的公司希望我证明这一点,因为这些信息至关重要,必须是正确的

我从未做过这种事情,也从未使用过Oracle(我通常使用的是MSSQL),因此我想知道:

  • 最佳方法/最佳实践代码/文档是什么 明智
  • 使用Oracle时我应该注意什么

我认为我比飞鸟二世先进一点,但我只做了几年的SQL开发。因此,您可能想到的任何其他方法都会大有帮助。

如果我正确理解您的问题,那么它可能非常简单,只需在Database-1中创建一个数据库链接,其中包含用户id、密码、,TNS数据库-2的服务名称,并在数据库-1的查询中使用DB链接作为
@Link\u name
,以访问数据库-2中的对象

阅读更多信息

一旦有了数据库链接,就可以使用如下查询

select a.col1, b.col1
  from table1 a, 
       table1@dblink b   --this is a table in Database-2
 where a.col2 = b.col2
    ....
    ....;

在将一个数据库模式迁移到另一个数据库模式时,我遇到了类似的情况,我在DBA Stack Exchange上发布了这个问题:


我使用的是SQL Server,但解决方案的机制应该适合您

此作业将如何与最终用户交互?它是否会耗尽调度程序并发送电子邮件,或将验证结果发布到某个DB表,或将结果转储到某个网络目录或FTP中?你知道Perl吗?这看起来是PerlI不认识Pearl的完美人选。脚本的结果应显示字段不匹配的位置,这可能会被转储到excel工作表中。此作业的最终用户将是我,并且在脚本完成后可能会运行几次。这两个表是否在同一个ORCL服务器上?如果是,则看起来像一个简单的外部联接查询它们位于同一台服务器上,但数据库不同。根据我目前的研究,我必须创建一个数据库链接。到目前为止,我还没有权限,但很快就会收到它们。因此,您需要编写一个外部联接查询,以查找表1中是否有尚未进入表2中的行。您熟悉外部联接吗?