如何在plsql中比较两个列相同的表



我得到了两个表:aanvr_omzetten(请求(和klant(客户(

表格结构:

AANVR_OMZETTEN
VOORNAAM ACHTERNAAM GESLACHT GEBOORTEDATUM EMAIL
A        John       M        07-01-1990    v1@gmail.com
B        Jaxk       V        01-04-1965    v2@gmail.com

KLANT
NAAM ACHTERNAAM GESLACHT GEBOORTEDATUM EMAIL        NATION BANKNR STUDY
A    John       M        07-01-1990    v1@gmail.com DUTCH  12     YES
B    Jack       M        01-04-1965    v2@gmail.com DUTCH  15     YES

这是我的代码:

DECLARE
v_klantnummer number;
v_rekeningnummer number;
BEGIN
-- get klantnummer and rekeningid
BEGIN
select klantnummer, rekeningid into v_klantnummer, v_rekeningid from rekening where rekeningnummer = :P501_REKENINGNR and rekeningtype = 23;
EXCEPTION
when no_data_found then
raise_application_error(-20000, 'Rekeningnummer is onbekend');
END;
-- get the information of klant X with klantnummer v_klantnummer
for i in (select voornaam, achternaam, geslacht, geboortedatum, email, postcode, huisnummer, straat, plaats, nationaliteit, burgerservicenummer
from klant where klantnummer = v_klantnummer)
loop
-- compare with other table?? 
-- 
for i in (select voornaam, achternaam, geslacht, geboortedatum, email, postcode, huisnummer, straat, plaats, nationaliteit, burgerservicenummer
from aanvr_omzetten where aanvr_omzetten = :P501_aanvr_omzettennr)
-- both tables loaded but how can i compare them?
-- ONLY if the selected attributes match 
INSERT etc.

我不需要比较所有列,只需要比较aanvr_omzetten中表中的列,因为klant中有所有这些列+额外列。

KLANT:v_klantnummer
AANVR_OMZETTEN::P501_AANVR_OMZETTENNR中的行主键

我只想在这些列匹配的情况下进行插入,否则会引发错误。

知道我该怎么做吗?

那么您想在两个命名表中都存在的一些(第三个?(表中插入值吗?您可以使用SQL INSERT语句,使用INTERSECT运算符来标识匹配的行。

insert into whatever
select VOORNAAM, ACHTERNAAM, GESLACHT, GEBOORTEDATUM, EMAIL 
from AANVR_OMZETTEN
intersect 
select NAAM, ACHTERNAAM, GESLACHT, GEBOORTEDATUM, EMAIL   
from KLANT
;     

这可能不是一个完整的解决方案(例如,它忽略了主键的问题(。但你的问题并没有提供任何线索,说明你想如何处理这些事情。如果您需要进一步的帮助,请澄清您的问题。

  • -创建一个只显示公共列的类型

    --为表格的弹出这些类型表格的数组

    --用一个循环迭代,例如KLANT
    --foreach行检查如果它存在于AANVR_ OMZETTEN表数组中
    --如果不是;插入如果是接下来继续。

https://www.tutorialspoint.com/plsql/plsql_arrays.htm

相关内容

  • 没有找到相关文章

最新更新