Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/11/2011, 15h22   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 59
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juillet 2007
Messages : 59
Points : 10
Points : 10
Par défaut merge into + where

je viens de changer le code Acces :
Code :
1
2
3
 
UPDATE T_Trafic_RRCap_Support LEFT JOIN[Liste des sites] ON T_Trafic_RRCap_Support.SiteRadio =[Liste des sites].[Num site] SET[Liste des sites].Mode_racco_2G = T_Trafic_RRCap_Support!TypeSupport,[Liste des sites].Site_A_2G = T_Trafic_RRCap_Support!Site_Racco,[Liste des sites].Nb_E1_2G = T_Trafic_RRCap_Support!Nombre_E1,[Liste des sites].Dat_Maj_infos_RRCAP = T_Trafic_RRCap_Support!DateMAJ
WHERE ((([Liste des sites].[Num site]) IS NOT NULL) AND ((T_Trafic_RRCap_Support.TypeTrafic)="Abis") AND ((T_Trafic_RRCap_Support.StatusAbisIub)="R" OR (T_Trafic_RRCap_Support.StatusAbisIub)="M" OR (T_Trafic_RRCap_Support.StatusAbisIub)="A"));
en oracle :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
 
 
MERGE INTO Liste_des_sites l 
USING (
 
SELECT trafic.SiteRadio, trafic.TypeSupport,
 
trafic.Site_Racco,
 
trafic.Nombre_E1, 
 
trafic.DateMAJ  FROM T_Trafic_RRCap_Support trafic
 
WHERE ( upper( trafic.TypeTrafic) ='ABIS'
 
AND (upper(trafic.StatusAbisIub) ='R'
 
 OR upper(trafic.StatusAbisIub)='M'
 OR upper(trafic.StatusAbisIub)='A'
 
 
)))t
 
ON (l.Num_site = t.SiteRadio AND l.Num_site IS NOT NULL )
WHEN MATCHED THEN UPDATE SET
 
l.Mode_racco_2G = t.TypeSupport,
 
l.Site_A_2G = t.Site_Racco,
 
l.Nb_E1_2G = t.Nombre_E1, 
 
l.Dat_Maj_infos_RRCAP = t.DateMAJ
Par contre, il me genere une erreur :


Citation:

Erreur SQL : ORA-30926: impossible d'obtenir un ensemble de lignes stables dans les tables source
30926. 00000 - "unable to get a stable set of rows in the source tables"
*Cause: A stable set of rows could not be got because of large dml
activity or a non-deterministic where clause.
*Action: Remove any non-deterministic where clauses and reissue the dml.
zorro13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2011, 15h30   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 313
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 313
Points : 5 819
Points : 5 819
Ajoutez SiteRadio dans le select et supprimez la condition inutile: AND l.Num_site IS NOT NULL
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
MERGE INTO Liste_des_sites l
USING (SELECT trafic.SiteRadio,
              trafic.TypeSupport,
              trafic.Site_Racco,
              trafic.Nombre_E1,
              trafic.DateMAJ
         FROM T_Trafic_RRCap_Support trafic
        WHERE (upper(trafic.TypeTrafic) = 'ABIS' AND
              (upper(trafic.StatusAbisIub) = 'R' OR
              upper(trafic.StatusAbisIub) = 'M' OR
              upper(trafic.StatusAbisIub) = 'A'))) t
ON (l.Num_site = t.SiteRadio)
WHEN MATCHED THEN
  UPDATE
     SET l.Mode_racco_2G       = t.TypeSupport,
         l.Site_A_2G           = t.Site_Racco,
         l.Nb_E1_2G            = t.Nombre_E1,
         l.Dat_Maj_infos_RRCAP = t.DateMAJ
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2011, 15h38   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 59
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juillet 2007
Messages : 59
Points : 10
Points : 10
Bonjour,
je viens d'ajouter siteRadio dans le select et la condition !=null dans la clause where la requete devient :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
MERGE INTO Liste_des_sites l
USING (SELECT trafic.SiteRadio,
              trafic.TypeSupport,
              trafic.Site_Racco,
              trafic.Nombre_E1,
              trafic.DateMAJ
         FROM T_Trafic_RRCap_Support trafic
        WHERE (trafic.SiteRadio !=null and upper(trafic.TypeTrafic) = 'ABIS' AND
              (upper(trafic.StatusAbisIub) = 'R' OR
              upper(trafic.StatusAbisIub) = 'M' OR
              upper(trafic.StatusAbisIub) = 'A'))) t
ON (l.Num_site = t.SiteRadio)
WHEN MATCHED THEN
  UPDATE
     SET l.Mode_racco_2G       = t.TypeSupport,
         l.Site_A_2G           = t.Site_Racco,
         l.Nb_E1_2G            = t.Nombre_E1,
         l.Dat_Maj_infos_RRCAP = t.DateMAJ
Parc contre, j'ai remarqué que la requete fonctionne bien avec trafic.SiteRadio !=null et genere une erreur avec trafic.SiteRadio is not null


Merci
zorro13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h48.


 
 
 
 
Partenaires

Hébergement Web