Bonjour,
J'ai un probleme au niveau de manipulation d'une procédure stockée sous SQLServer, je voudrais votre avis si la procédure est correcte ou non, Merci
NB: la procédure serte à ajouter les données a la BDD, elle a comme parametre des données varchar qu'elle devrai par la suite les convetir selon le type cible des champs de la table.
voila le code:
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
create procedure Convertir
(
@refasset int,@dividendyield varchar(max), @dividendyield5 varchar(max),
@dividendRate varchar(max), @dividendPayoutRatio varchar(max), @dividendPayoutRatio5 varchar(max),
@dividendGrowthRate3 varchar(max), @dividendGrowthRate5 varchar(max), @Consecutive varchar(max),
@DividendPayType varchar(max),@dividendDeclaration varchar(max), @dividendExDate varchar(max),
@DividenRecord varchar(max),@dividendPayDate varchar(max), @dividendAmountCurrent varchar(max),
@DividenAmountPrevious varchar(max), @dividendPayments varchar(max), @DatePrise date
)
as
begin 
IF ((@dividendyield is null OR @dividendyield = 'None'))
set @dividendyield=null
else
set @dividendyield=cast(@dividendyield as decimal (18,2))
 
 
IF ((@dividendyield5 is null OR @dividendyield5 = 'None'))
set @dividendyield5=null
else
set @dividendyield5=cast(@dividendyield5 as decimal (18,2))
 
 
IF ((@dividendRate is null OR @dividendRate = 'None'))
set @dividendRate=null
else
set @dividendRate=cast(replace(@dividendRate,'$','') as decimal (18,2))
 
 
IF ((@dividendPayoutRatio is null OR @dividendPayoutRatio = 'None'))
set @dividendPayoutRatio=null
else
set @dividendPayoutRatio=cast(@dividendPayoutRatio as decimal (18,2))
 
IF ((@dividendPayoutRatio5 is null OR @dividendPayoutRatio5 = 'None'))
set @dividendPayoutRatio5=null
else
set @dividendPayoutRatio5=cast(@dividendPayoutRatio5 as decimal (18,2))
 
IF ((@dividendGrowthRate3 is null OR @dividendGrowthRate3 = 'None'))
set @dividendGrowthRate3=null
else
set @dividendGrowthRate3=cast(@dividendGrowthRate3 as decimal (18,2))
 
IF ((@dividendGrowthRate5 is null OR @dividendGrowthRate5 = 'None'))
set @dividendGrowthRate5=null
else
set @dividendGrowthRate5=cast(@dividendGrowthRate5 as decimal (18,2))
 
IF ((@Consecutive is null OR @Consecutive = 'None'))
set @Consecutive=null
else
set @Consecutive=@Consecutive
 
IF ((@DividendPayType is null OR @DividendPayType = 'None'))
set @DividendPayType=null
else
set @DividendPayType=@DividendPayType
 
IF ((@dividendDeclaration is null OR @dividendDeclaration = 'None'))
set @dividendDeclaration=null
else
set @dividendDeclaration=cast(@dividendDeclaration as date)
 
IF ((@dividendExDate is null OR @dividendExDate = 'None'))
set @dividendExDate=null
else
set @dividendExDate=cast(@dividendExDate as date)
 
IF ((@DividenRecord is null OR @DividenRecord = 'None'))
set @DividenRecord=null
else
set @DividenRecord=cast(@DividenRecord as date)
 
IF ((@dividendPayDate is null OR @dividendPayDate = 'None'))
set @dividendPayDate=null
else
set @dividendPayDate=cast(@dividendPayDate as date) ---
 
IF (@dividendAmountCurrent is null OR @dividendAmountCurrent = 'None')
set @dividendAmountCurrent=null
else
set @dividendAmountCurrent=cast(replace(@dividendAmountCurrent,'$','') as decimal(18,2))
 
IF ((@DividenAmountPrevious is null OR @DividenAmountPrevious = 'None'))
set @DividenAmountPrevious=null
else
set @DividenAmountPrevious=cast(replace(@DividenAmountPrevious,'$','') as decimal(18,2))
 
IF (@dividendPayments is null OR @dividendPayments = 'None')
set @dividendPayments=null
else
set @dividendPayments=@dividendPayments
 
insert into dbo.DividendInformation_Dividendinvestor values (@refasset,@dividendyield,@dividendyield5,@dividendRate,@dividendPayoutRatio,
@dividendPayoutRatio5,@dividendGrowthRate3,@dividendGrowthRate5,@Consecutive,@DividendPayType,@dividendDeclaration,@dividendExDate,
@DividenRecord,@dividendPayDate,@dividendAmountCurrent,@DividenAmountPrevious,@dividendPayments,@dateprise
)
end
Merci d'avance.