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 :

Longueur d'un VARCHAR dans proc stock


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Points : 67
    Points
    67
    Par défaut Longueur d'un VARCHAR dans proc stock
    bonjour,
    J'utilise pour la première fois une base SQL Server et je l'utilise à travers un autre outil donc je ne conais pas la version de la base.
    J'ai une procedure stockée dans laquelle je voudrait récupérer la longueur d'un varchar pour renvoyer la premiere chaine non vide trouvée, mais aucune des fonctions que j'ai trouvé pour sql serveur ne marche :
    char_length,character_length,length
    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
     
    CREATE FUNCTION dbo.getLibPdt (@lib1 VARCHAR,@lib2 VARCHAR,@lib3 VARCHAR)
    RETURNS VARCHAR
    AS
    BEGIN
    RETURN CASE 
       WHEN (CHARACTER_LENGTH(@lib1) < 1) THEN 
        WHEN (CHARACTER_LENGTH(@lib2) < 1) THEN
           WHEN (CHARACTER_LENGTH(@lib3) < 1) THEN     	  
           ELSE @lib1
           END
        ELSE @lib2
        END
      ELSE @lib3
      END
    END

    merci

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    bonjour,
    LEN()

    Tu as aussi DATALENGTH, qui va te retourner la longueur de la chaîne, sans enlever les vides éventuels qui suivent.

    Démo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    DECLARE @test varchar(200)
    SET @test = 'salut   '
    SELECT LEN(@test)
    SELECT DATALENGTH(@test)
     
    DECLARE @test2 char(200)
    SET @test2 = 'salut'
    SELECT LEN(@test2)
    SELECT DATALENGTH(@test2)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Points : 67
    Points
    67
    Par défaut
    Waou super merci pour ta reponse ultra rapide
    LEN ne se trouvait pas dans ma liste des fonctions sqlServer

    je vais pouvoir corriger mes autres erreurs


    encore merci

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

Discussions similaires

  1. Générer SQL dynam. dans proc. stocké
    Par edefius dans le forum SQL
    Réponses: 17
    Dernier message: 20/04/2009, 12h11
  2. Comment faire un Curseur dans Proc Stockée
    Par Cazaux-Moutou-Philippe dans le forum Firebird
    Réponses: 1
    Dernier message: 20/01/2009, 12h08
  3. Appels de procedures stockées dans une proc stockée ?
    Par Nadaa dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 17/07/2008, 10h32
  4. Oracle 8 : TRUNCATE table dans proc. stockée
    Par davy.g dans le forum Administration
    Réponses: 5
    Dernier message: 16/03/2007, 16h11
  5. Lancement d'un shell Unix dans un proc stockée
    Par SBA03 dans le forum Oracle
    Réponses: 20
    Dernier message: 31/08/2006, 09h22

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