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] [TSQL] Modifier le code d'une chaîne


Sujet :

MS SQL Server

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Points : 231
    Points
    231
    Par défaut [SQL2K] [TSQL] Modifier le code d'une chaîne
    Re-bonjour !

    je cherche une méthode pour la chose suivante :
    j'ai une chaîne mal formatée avec des caracteres situés apres l'indicateur de fin de chaîne.
    Comment puis-je déplacer mon '0000' pour le placer en fin de chaîne (ou carrément le virer puisque quand je regarde une chaîne "normale" cet indicateur n'est pas visible - ce qui me paraît normal)? : /
    J'avoue que la je seche completement.

    Si vous avez des indications je suis preneur !

    Merci d'avance !

  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,

    Je ne comprends pas bien la question. Peux-tu poster un exemple concret de ce que tu veux, avec exemple de la chaîne ?

    Merci de te conformer à ces règles simples.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Points : 231
    Points
    231
    Par défaut
    Bonjour,

    j'ai édité l'intitulé de la discussion et j'espere etre un peu plus conforme aux regles. Je vais également essayer d'être plus explicite. Merci du petit rappel ^^

    Concernant ma question, j'ai une chaîne qui, castée en varbinary, me donne quelque chose comme

    0x43 0045 002D 0020 003A 0035 001B 0057 0000 0020 0020 0020 0020

    ce qui pose probleme, car des caracteres (des espaces en l'occurence) ont été insérés (je n'ai pas encore compris comment) apres la balise de fin de chaîne "0000".
    Je dois donc trouver une syntaxe générique me permettant de supprimer les "0000" au milieu de cette chaîne, et, si besoin est (mais je ne le pense pas) de les mettre à la fin.

    EDIT : Bon je viens de passer dans la 4eme dimension !!
    voilà ma démarche.
    La colonne de ma table qui pose probleme et qui contient ces chaînes pourries est le champ "var12". Pour une des lignes posant probleme, le champ var12 vaut :
    "
    Certificate status : 5
    ZIG contract number : E434137
    Tot.Nb employees :
    Nb of sites : 3
    Audit scope : Fremstilling og salg af katalysatorer.
    "
    lorsque je l'affiche.
    POURTANT : quand je fais une recherche sur ma table avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    where var12 like '%English :%'
    cette ligne est ramenée !!!!!
    Pas moyen de trouver ce mot "English" dans mon var12 pourtant !!!
    Meme en affichant le code hexa de var12 et en reconstituant le texte à partir du code, pas trace de ce "English" !!!
    Révélation : j'affiche en mode texte, et non plus en mode Grid, et là je vois :
    "
    Certificate status : 5
    ZIG contract number : E434137
    Tot.Nb employees :
    Nb of sites : 3
    Audit scope : Fremstilling og salg af katalysatorer.
    Audit scope English : Production and sales of catalysts.
    ZIG contract number : E434137
    Tot.Nb employees :
    Nb of sites : 3
    Audit scope : Fremstilling og salg af katalysatorer.
    Audit scope English : Production and sales of catalysts.
    "
    Quelqu'un aurait il une explication ??

  4. #4
    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
    La réponse à ce thread ne t'a pas permis d'avancer ??
    http://www.developpez.net/forums/sho....php?p=2561365

    Il me semble que tu peux détecter ce que tu décris avec le code que j'ai mis dans ma réponse, et que ça te donne aussi un moyen de nettoyer ta chaîne.

    Me trompé-je ??

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Points : 231
    Points
    231
    Par défaut
    Tout à fait ! merci beaucoup, je n'avais pas vu la réponse à cet ancien sujet le probleme avait été contourné à l'époque !
    J'avais fait une recherche sur le forum avant de poster, mais comme ce thread était de moi je n'avais pas pensé à vérifier : /

    Encore merci rudib !

    PS : la différence d'affichage entre mode grid et mode texte c'est l'unicode interprété ou non ?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Points : 231
    Points
    231
    Par défaut
    Si ca peut servir, voilà mes fonctions finales permettant ce nettoyage.

    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
     
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS OFF 
    GO
     
    ALTER        FUNCTION SYSADM.fct_GetWrongCharPosition 
       (
    		@n nvarchar(4000)
       )
    RETURNS 
    	INT
    AS
    BEGIN 
    DECLARE @position INT, @Stop SMALLINT
    	SET @position = 1
    	SET @Stop = 0
    	WHILE (@position <= DATALENGTH(@n)) AND (@Stop = 0)
    	BEGIN
    		IF (CONVERT(nchar(1), SUBSTRING(@n, @position, 1))='') AND (UNICODE(SUBSTRING(@n, @position, 1))=0)
    		BEGIN
    			SET @Stop=1
    		END
    		SET @position = @position + 1
    	END
        IF @Stop = 0 
          SET @position=1
     
          RETURN (@position-1)
    END 
     
    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
    ------------------------------------------------------------------------------
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS OFF 
    GO
     
    ALTER        FUNCTION SYSADM.fct_CleanStringWrongChar
       (
         @n nvarchar(4000)
       )
    RETURNS 
    	nvarchar(4000)
    AS
    BEGIN
    	WHILE (SYSADM.fct_GetWrongCharPosition(@n) != 0)
    	BEGIN
    		SET @n=(LEFT(@n, SYSADM.fct_GetWrongCharPosition(@n)-1)+RIGHT(@n, LEN(@n)-SYSADM.fct_GetWrongCharPosition(@n)))
    	END
    	RETURN (@n)
    END 
     
    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO

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

Discussions similaires

  1. Empêcher l'interprétation de code dans une chaîne
    Par Yalta85 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/12/2010, 00h34
  2. Modifier la casse d'une chaîne de caractère
    Par gege2061 dans le forum Télécharger
    Réponses: 0
    Dernier message: 01/12/2010, 10h24
  3. Réponses: 16
    Dernier message: 24/02/2010, 14h14
  4. Réponses: 1
    Dernier message: 06/08/2008, 10h50
  5. Méthode qui permet de modifier le code d'une page après affichage .. ?
    Par winnie82 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 04/07/2006, 15h40

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