IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Problème de conversion


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 101
    Points : 88
    Points
    88
    Par défaut Problème de conversion
    Bonjour,

    J'ai une erreur qui met remonte par le moteur SQL lorsque je lance le code SQL suivant :

    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
     
    DECLARE @req1 NVARCHAR(2000)
    DECLARE @CodeColis VARCHAR (20)
    DECLARE @Init_Num_Colis int
    DECLARE @SDDELN_Max int
    SELECT @SDDELN_Max = 2
    SET @CodeColis ='1'
    SET @Init_Num_Colis = 1
     
    WHILE (@Init_Num_Colis <= @SDDELN_Max)
    BEGIN
    SET @req1 =	N'	SELECT 
    		IDENTITY(int,' + @CodeColis + ', 1) as Num_Colis,
    		ES.SDDELN			
    		INTO Admin.dbo.C_Num_Colis
    		FROM F4211_ES ES
    	             WHERE ES.SDDELN = '+@Init_Num_Colis+''
    		SELECT @req1
    		EXEC sp_executesql @req1
    		SELECT * FROM Admin.dbo.C_Num_Colis
    		SELECT @Init_Num_Colis
    		SET @Init_Num_Colis = @Init_Num_Colis +1
    		DROP TABLE Admin.dbo.C_Num_Colis
    END
    Voici l'erreur qui est remontée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Msg 245, Level 16, State 1, Line 11
    Conversion failed when converting the nvarchar value '	SELECT 
    IDENTITY(int,1, 1) as Num_Colis,
    ES.SDDELN			
    INTO Admin.dbo.C_Num_Colis
    FROM F4211_ES ES
    WHERE ES.SDDELN = ' to data type int.
    J'ai donc un probleme de conversion ' en INT.

    Comment puis-je éviter ce petit soucis afin de passer le bon paramètre dans ma condition WHERE.

    Merci d'avance.
    Errare Humanum Est ...

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    As tu essayé de convertir en char
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SET @req1 =	N'	SELECT 
    		IDENTITY(int,' + @CodeColis + ', 1) as Num_Colis,
    		ES.SDDELN			
    		INTO Admin.dbo.C_Num_Colis
    		FROM F4211_ES ES
    	             WHERE ES.SDDELN = '+ cast(@Init_Num_Colis as char(20))+''
    Jérôme

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 101
    Points : 88
    Points
    88
    Par défaut
    Bonjour,

    Oui j'ai essayé de convertir en char ça passe mais j'ai trouver une autre solution.

    Il suffisait de définir une variable et passer cette variable en paramètres dans la procédure stockée sp_executesql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DECLARE @ParmDefinition	nvarchar(500)
    DECLARE @SQLString	nvarchar(500)
     
    SET @Init_Num_Colis = 1
    SET @ParmDefinition = N'@Init_Num_Colis_Param INT'
     
    EXEC sp_executesql @req,@ParmDefinition, @Init_Num_Colis_Param = @Init_Num_Colis
    Et le tour est joué.

    Merci pour votre aide
    Errare Humanum Est ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de conversion de dimension dans BUSINESS OBJECT
    Par greatmaster1971 dans le forum Deski
    Réponses: 4
    Dernier message: 28/04/2014, 13h15
  2. - [CAST ou CONVERT] Problème de conversion de date
    Par Boublou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 14h31
  3. Problème de conversion 3DS->.X
    Par JBernn dans le forum DirectX
    Réponses: 5
    Dernier message: 08/04/2004, 19h08
  4. Problème de conversion unicode
    Par djmalo dans le forum C
    Réponses: 5
    Dernier message: 09/03/2004, 11h48
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo