问题描述
嗨,汤姆
我试图确定是否最好在SQL中编写此逻辑,还是应该编写PLSQL块。
我的例子:
我有两个表,一个是主表,它将有数千条记录,另一个是报告表,它将有大约6000条记录。
如果对于任何这些6000记录,主表中的人口统计字段值几乎没有变化,则应报告这些值。
在报告表中插入记录后,主表更新了
更新主客户端设置frst_nme = 'TIM',其中id = 101;
我的问题:
我有更新报告表的PLSQL块,但我还需要检查报告表中的现有值,如果它在主表中被更新。
如何比较两个表中的更改值并使用新值查询记录。
Frst_NME,MDD_NME和LST_NME可以更改。
我们可以编写PLSQL块,但请检查它在SQL中是否更容易和高效,请建议。
谢谢
P
我试图确定是否最好在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/
我会给你介绍的
https://stewashton.wordpress.com/list-of-my-posts-about-comparing-and-synchronizing-tables/
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




