2010-01-14 4 views
3

je le suivant morceau de SQL qui ne fonctionne pas:convertir en appel de procédure stockée?

declare @id INT; 
set @id=0; 
exec insert_mail @id OUTPUT, 'ZLgeOZlqRGC6l57TyD/xYQ==', 4928, '2010\01\14\14\03131_2.eml', 'Suz, Katie and Kourtney''s Housewarming Party', CONVERT(DATETIME, '2015-01-18 14:03:13', 120); 
select @id; 

et changer cette façon le fixe:

declare @id INT; 
set @id=0; 
declare @p_valid_until datetime; 
set @p_valid_until=CONVERT(DATETIME, '2015-01-18 14:03:13', 120) 
exec insert_mail @id OUTPUT, 'ZLgeOZlqRGC6l57TyD/xYQ==', 4928, '2010\01\14\14\03131_2.eml', 'Suz, Katie and Kourtney''s Housewarming Party', @p_valid_until; 
select @id; 

Tout le monde peut expliquer?

Cheers, Jan

Répondre

-2

dont vous appelez la fonction CONVERT dans une commande d'exécution qui n'est pas autorisée. Vous le point d'utiliser la fonction de conversion ne peut pas appeler des fonctions dans le passage des arguments

EXECUTE insert_mail ... CONVERT(DATETIME, '2015-01-18 14:03:13', 120) 

Je ne vois pas. Entrez simplement la date sans convertir.

8

Vous ne pouvez pas appeler des fonctions dans le passage des arguments. Ces valeurs de paramètres devraient être des constantes ou des paramètres.

1

Vous ne pouvez pas passer des fonctions, etc. aux procédures stockées, seules les variables ou valeurs constantes Dans le premier cas ...

Questions connexes