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

MS SQL Server Discussion :

[SQL2K] Pb de concaténation de chaine


Sujet :

MS SQL Server

  1. #1
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut [SQL2K] Pb de concaténation de chaine
    Bonjour

    Je développe une proc stock et je suis confronté à un sousic de conversion de type que je ne comprends pas.

    Voici mon 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
     
    DECLARE 	@Localisa VARCHAR(10),
    	@LocalRech VARCHAR(5000),
    	@Portee INT,
    	@SQL VARCHAR(8000)
     
    SET @Localisa = '45'
    SET @Portee = 8
    SET @LocalRech = CASE @Portee
    	WHEN 1 THEN 'A.Localisation in (' + @Localisa + ')'
    	WHEN 5 THEN (SELECT Id_Commune FROM Opila_Localisation 
    			WHERE Numero = (
    			SELECT Numero FROM Opila_Localisation WHERE Id_Commune = @Localisa))
    	WHEN 6 THEN (SELECT Id_Commune FROM Opila_Localisation 
    			WHERE Region = (
    			SELECT Region FROM Opila_Localisation WHERE Id_Commune = 45))
    	WHEN 8 THEN '1 = 1'
    END
    SELECT @LocalRech
    Et là il me mets ce message d'erreur
    Erreur de syntaxe lors de la conversion de la valeur varchar '1 = 1' vers une colonne de type de données int.
    J'ai le même genre de souci quand @Portee est à 1. Je ne comprends pas pourquoi il veut convertir ça en INT.

    Pouvez vous m'aider ?
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 839
    Points : 52 932
    Points
    52 932
    Billets dans le blog
    5
    Par défaut
    C'est logique vous mélangez des entiers et des chaines de caractères dans votre CASE !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CASE @Portee
    	WHEN 1 THEN 'A.Localisation in (' + @Localisa + ')' =>> chaine
    	WHEN 5 THEN (SELECT Id_Commune FROM Opila_Localisation 
    			WHERE Numero = (
    			SELECT Numero FROM Opila_Localisation WHERE Id_Commune = @Localisa)) =>> entier
    	WHEN 6 THEN (SELECT Id_Commune FROM Opila_Localisation 
    			WHERE Region = (
    			SELECT Region FROM Opila_Localisation WHERE Id_Commune = 45))  =>> entier
    	WHEN 8 THEN '1 = 1' =>> chaine
    END
    Soyez cohérent !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    OK, merci. Je vais modifier ça.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

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

Discussions similaires

  1. Concaténer une chaine et un nombre pour former un nom de variable ?
    Par debie1108 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/04/2007, 07h38
  2. Comment concaténer une chaine de caractères avec un espace ?
    Par blanchonvincent dans le forum MATLAB
    Réponses: 6
    Dernier message: 07/04/2007, 21h53
  3. Réponses: 2
    Dernier message: 02/04/2007, 11h07
  4. Réponses: 1
    Dernier message: 25/04/2006, 16h06
  5. Concaténéation de chaine dans un group by
    Par Delphi-ne dans le forum Requêtes
    Réponses: 4
    Dernier message: 28/01/2006, 00h11

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