I ont les utilisateurs de remorquage dans l'oracleoracle | fusionner les données où ligne correspond pas à la clé primaire insérée
- nsrtax = cible
- temp_nsrtax = Source
le schéma pour les tables sont les mêmes
Name Type
---------- ------------
CUSTNO NUMBER(10)
EKRARYEAR NUMBER(4)
ESALNO NUMBER(10)
EKRARDATE DATE
EKRARFROM DATE
EKRARTO DATE
TOTALEKRAR NUMBER(15,3)
TOTALSARF NUMBER(15,3)
EQUAL1 NUMBER(15,3)
DEPTNO NUMBER(4)
JEBAYA NUMBER(1)
USERIN NUMBER(3)
USERUP NUMBER(3)
PRODATE DATE
STATE NUMBER(1)
REGNO NUMBER(2)
BRNO NUMBER(3)
EKRARNO NUMBER(4)
EKRARTYPE NUMBER(1)
EK_LOSS NUMBER(15,3)
TYPESTAXE NUMBER(10)
EXEMPT NUMBER(10,3)
il est PR_TAWTEEK primary key (CUSTNO, EKRARYEAR, ESALNO, EKRARTYPE)
clé primaire dans les deux tables
je viens de créer le code de fusion comme celui-ci
MERGE INTO TA_TAWTEEK D USING (SELECT CUSTNO,EKRARYEAR,ESALNO,EKRARDATE,EKRARFROM,EKRARTO,TOTALEKRAR,TOTALSARF,EQUAL1,DEPTNO,JEBAYA,USERIN,USERUP,PRODATE,STATE,REGNO,BRNO,EKRARNO,EKRARTYPE,EK_LOSS,TYPESTAXE,EXEMPT
FROM temp_nsrtax.TA_TAWTEEK
WHERE custno=26) S
ON (D.custno = S.custno)
WHEN NOT MATCHED THEN INSERT
(D.CUSTNO,D.EKRARYEAR,D.ESALNO,D.EKRARDATE,D.EKRARFROM,
D.EKRARTO,D.TOTALEKRAR,D.TOTALSARF,D.EQUAL1,D.DEPTNO,D.JEBAYA,
D.USERIN,D.USERUP,D.PRODATE,D.STATE,D.REGNO,D.BRNO,D.EKRARNO,
D.EKRARTYPE,D.EK_LOSS,D.TYPESTAXE,D.EXEMPT)
VALUES(S.CUSTNO,S.EKRARYEAR,S.ESALNO,S.EKRARDATE,S.EKRARFROM
,S.EKRARTO,S.TOTALEKRAR,
S.TOTALSARF,S.EQUAL1,S.DEPTNO,S.JEBAYA,S.USERIN,S.USERUP,S.PRODATE,
S.STATE,S.REGNO,S.BRNO,S.EKRARNO,S.EKRARTYPE,S.EK_LOSS,S.TYPESTAXE,
S.EXEMPT)S.CUSTNO,S.EKRARYEAR,S.ESALNO,S.EKRARDATE,
S.EKRARFROM,S.EKRARTO,S.TOTALEKRAR,S.TOTALSARF,S.EQUAL1,
S.DEPTNO,S.JEBAYA,S.USERIN,S.USERUP,S.PRODATE,S.STATE,S.REGNO,
S.BRNO,S.EKRARNO,S.EKRARTYPE,S.EK_LOSS,S.TYPESTAXE,S.EXEMPT
mais il ne fonctionne pas comme je l'ai besoin, je dois insérer toutes les lignes dans la cible où les colonnes de clé primaire ne correspond pas, pas quand tout Les lignes ne correspondent pas
Désolé pour mon mauvais anglais!