Bonjour

Je n'arrive pas à comprendre pourquoi ma procédure stockée ne marche pas et renvoi ceci.
J'ai fait exprès de mettre le même nvarchar qui est présent dans la définition de la table ventes_hebdo pour pas avoir de problème de troncation j'ai essayez avec 150 mais pareil.

Merci d'avance pour vos lumiéres.

Debut Procédure Alim_Data_Ventes_hebdo_delta_rattrapage à 20090724
Fichier à Traiter20090724
R60a_ventes_suivi_placement_20090101.txt
Msg 8152, Level 16, State 13, Procedure Alim_Data_Ventes_hebdo_delta_rattrapage, Line 41
Les données de chaîne ou binaires seront tronquées.

L'instruction a été arrêtée.
Avertissement*: la valeur NULL est éliminée par un agrégat ou par une autre opération SET.
--------------
count [ODS_VEGAS].[dbo].[Ventes_hebdo_Work] 0

(0 row(s) affected)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
ALTER PROCEDURE  [dbo].[Alim_Data_Ventes_hebdo_delta_rattrapage]
AS
BEGIN
 
DECLARE @fichiersource nvarchar (50)
declare @count_vente_work varchar (10)
declare @tempst datetime
 
select @tempst =  getdate()
print 'Debut Procédure Alim_Data_Ventes_hebdo_delta_rattrapage à ' + convert (nvarchar , @tempst ,112)
 
 	-- on déclare le curseur qui boucle dans ventes
	DECLARE curseur_fichier CURSOR FOR
			SELECT distinct FichierSource
			FROM ventes_hebdo
	-- on ouvre le curseur
	OPEN curseur_fichier
 
	-- on retourne le premier résultat
	FETCH NEXT FROM curseur_fichier INTO @fichiersource
 
	-- parcours de la boucle tant que fetch n'est pas vide
	WHILE @@FETCH_STATUS = 0
	BEGIN
 
select @tempst =  getdate()
print 'Fichier à Traiter' + convert (nvarchar , @tempst ,112)
 
print @fichiersource
@fichiersource = 
BEGIN TRANSACTION VENTE
 
BEGIN TRANSACTION TMP
 
	INSERT INTO [ODS_VEGAS].[dbo].[Ventes_hebdo_Work_1]
			   ([codemagasin],[date],[vente(1)_retour(2)]
				,[coderemise],[codetva],[ean],[codevendeur]
				,[Code_VendeurMagasin],[ANNULE]	,[NumTicket]      
				,[Id_Fichier_Ean_VendeurMagasin_Numticket_remise_IMEI]
				,[codeagence],[codepdl],[sousfamille],[IMEI]   
				,[NomClient],[PrenomClient]	,[TelephoneClient]
				,[CodePostalClient],[VilleClient],[AdresseClient]
				,[ComplementAdresse],[FichierSource]
				,[qte_dev],[qte],[DeltaQte],[ca_dev],[ca],[DeltaCa]         
				,[mtremise_dev],[mtremise],[DeltaMtremise]
				,[mttva_dev],[mttva],[DeltaMttva]
				,[DateFichier],Id_date_Ean_VendeurMagasin_Numticket_remise_IMEI)
 
				(SELECT   tmp.codemagasin , tmp.date, tmp.[vente(1)_retour(2)], tmp.coderemise, tmp.codetva, tmp.ean, 
				tmp.codevendeur, tmp.Code_VendeurMagasin,tmp.ANNULE, tmp.NumTicket, 
				tmp.Id_Fichier_Ean_VendeurMagasin_Numticket_remise_IMEI,
				tmp.codeagence, tmp.codepdl, tmp.sousfamille, tmp.IMEI, tmp.NomClient, tmp.PrenomClient, tmp.TelephoneClient, tmp.CodePostalClient, 
				tmp.VilleClient, tmp.AdresseClient, tmp.ComplementAdresse, tmp.FichierSource, ISNULL(SUM(tmp.qte),0) AS qte_dev, ISNULL(SUM(prod.qte), 0) AS qte, 
				ISNULL(SUM(tmp.qte),0) - ISNULL(SUM(prod.qte), 0) AS DeltaQte, ISNULL(SUM(tmp.ca),0) AS ca_dev, ISNULL(SUM(prod.ca), 0) AS ca, 
				ISNULL(SUM(tmp.ca),0) - ISNULL(SUM(prod.ca), 0) AS DeltaCa, ISNULL(SUM(tmp.mtremise),0) AS mtremise_dev, ISNULL(SUM(prod.mtremise), 0) AS mtremise, 
				ISNULL(SUM(tmp.mtremise),0) - ISNULL(SUM(prod.mtremise), 0) AS DeltaMtremise, ISNULL(SUM(tmp.mttva),0) AS mttva_dev, ISNULL(SUM(prod.mttva), 0) AS mttva, 
				ISNULL(SUM(tmp.mttva),0) - ISNULL(SUM(prod.mttva), 0) AS DeltaMttva, tmp.DateFichier
				,(convert (nvarchar , tmp.date ,112) + '_'+ 
				substring(tmp.Id_Fichier_Ean_VendeurMagasin_Numticket_remise_IMEI,15,
				len(tmp.Id_Fichier_Ean_VendeurMagasin_Numticket_remise_IMEI)) ) as Id_date_Ean_VendeurMagasin_Numticket_remise_IMEI
 
				FROM   DWH_VEGAS.dbo.Ventes_hebdo_BIS as prod right outer join 
				DWH_VEGAS.dbo.Ventes_hebdo AS tmp ON  prod.Id_date_Ean_VendeurMagasin_Numticket_remise_IMEI = tmp.Id_date_Ean_VendeurMagasin_Numticket_remise_IMEI 
				where tmp.FichierSource =  @fichiersource
 
				GROUP BY tmp.[Id_Fichier_Ean_VendeurMagasin_Numticket_remise_IMEI],tmp.Id_date_Ean_VendeurMagasin_Numticket_remise_IMEI,
				tmp.codemagasin, tmp.date, tmp.[vente(1)_retour(2)], tmp.coderemise, tmp.codetva, tmp.ean, tmp.codevendeur, 
				tmp.ANNULE, tmp.NumTicket,tmp.codeagence, tmp.codepdl, tmp.sousfamille, tmp.IMEI,
				tmp.NomClient, tmp.PrenomClient, tmp.TelephoneClient, tmp.CodePostalClient, 
				tmp.VilleClient, tmp.AdresseClient, tmp.ComplementAdresse, tmp.FichierSource, 
				tmp.DateFichier,tmp.Code_VendeurMagasin)
 
COMMIT TRANSACTION TMP
--[Ventes_hebdo_BIS]
print '--------------'
select  @count_vente_work = count(*)  from [ODS_VEGAS].[dbo].[Ventes_hebdo_Work_1]
 
print 'count [ODS_VEGAS].[dbo].[Ventes_hebdo_Work] ' + @count_vente_work 
 
				--insertion des données
				INSERT INTO [DWH_VEGAS].[dbo].[Ventes_hebdo_BIS]
				   select  [Id_Fichier_Ean_VendeurMagasin_Numticket_remise_IMEI],Id_date_Ean_VendeurMagasin_Numticket_remise_IMEI
						   ,[date],[ean],[Code_VendeurMagasin],[codeagence]
						   ,[codemagasin],[codevendeur],[codepdl],[vente(1)_retour(2)]
						   ,[DeltaQte],[DeltaCa],[coderemise],[DeltaMtremise],[DeltaMttva],[codetva],[sousfamille]
							,[IMEI],[ANNULE],[NomClient],[PrenomClient],[TelephoneClient]
						   ,[CodePostalClient],[VilleClient],[AdresseClient],[ComplementAdresse]
							,[NumTicket],[DateFichier],[FichierSource]
				 from [ODS_VEGAS].[dbo].[Ventes_hebdo_Work_1]
				where DeltaQte +DeltaCa + DeltaMtremise+DeltaMttva <> 0
 
			--suppresion de la table temporaire
			delete ODS_VEGAS.dbo.Ventes_hebdo_Work_1
 
select @tempst =  getdate()
print 'Fin du traitement du fichier'+ convert (nvarchar , @tempst ,112)
COMMIT TRANSACTION VENTE
 
-- on passe à la ligne suivante	
		FETCH NEXT FROM curseur_fichier INTO @fichiersource
 
	END
 
	-- on ferme le curseur
	CLOSE curseur_fichier
 
	-- on libère la mémoire
	DEALLOCATE curseur_fichier
 
END