暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 比较两个表之间的值

ASKTOM 2019-08-16
337

问题描述

嗨,汤姆

我试图确定是否最好在SQL中编写此逻辑,还是应该编写PLSQL块。

我的例子:

我有两个表,一个是主表,它将有数千条记录,另一个是报告表,它将有大约6000条记录。
如果对于任何这些6000记录,主表中的人口统计字段值几乎没有变化,则应报告这些值。

Table1 :
create table MAIN_CLIENT
(
    ID NUMBER(9,0),
    FRST_NME VARCHAR2(15 BYTE) NOT NULL ENABLE,
    MDD_NME VARCHAR2(15 BYTE),
    LST_NME VARCHAR2(20 BYTE) NOT NULL ENABLE
    ); 

Table 2:
create table MAIN_RPT
(
    ID NUMBER(9,0),
    FRST_NME VARCHAR2(15 BYTE) NOT NULL ENABLE,
    MDD_NME VARCHAR2(15 BYTE),
    LST_NME VARCHAR2(20 BYTE) NOT NULL ENABLE
    ); 

Insert into MAIN_CLIENT values (101,'MIKE','A','SMITH');
Insert into MAIN_RPT values (101,'MIKE','A','SMITH');
复制


在报告表中插入记录后,主表更新了

更新主客户端设置frst_nme = 'TIM',其中id = 101;

我的问题:
我有更新报告表的PLSQL块,但我还需要检查报告表中的现有值,如果它在主表中被更新。
如何比较两个表中的更改值并使用新值查询记录。
Frst_NME,MDD_NME和LST_NME可以更改。

我们可以编写PLSQL块,但请检查它在SQL中是否更容易和高效,请建议。

谢谢
P



专家解答

Stew Ashton做了一系列出色的博客文章,涵盖了所有常见方法。

我会给你介绍的

https://stewashton.wordpress.com/list-of-my-posts-about-comparing-and-synchronizing-tables/


文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论