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 :

Remplacer les caractères en Héxa d'un champ typé NTEXT


Sujet :

Développement SQL Server

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 75
    Points : 53
    Points
    53
    Par défaut Remplacer les caractères en Héxa d'un champ typé NTEXT
    Bonjour,

    Dans une procédure stockée, j'ai un SELECT du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT
    	Champ1
    	, Champ2 
    	, REPLACE(CONVERT(CHAR(8000), Champ3), CHAR(1), '-') AS Champ3
    FROM MaTable
    WHERE Champ1 = 101
    Le but étant de remplacer, dans le retour d'exécution de requête, le caractère hexadécimal (0x01) correspondant à une puce de document stockée dans la table par un ' - '

    Étant donné que le Champ3 est de type ntext, je souhaiterais plutôt avoir quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT
    	Champ1
    	, Champ2
    	, REPLACE(CONVERT(CHAR(  DATALENGTH( Champ3 )), Champ3), CHAR(1), '-') AS Champ3
    FROM MaTable
    WHERE Champ1 = 101
    Ceci afin de ne pas avoir de troncature à 8000.

    Mais apparemment, le CHAR( DATALENGTH (.. n'est pas accepté.

    Y aurait il un autre moyen de contourner ce problème ?

    Merci pour votre aide.

    Cordialement,
    Sébastien

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    bonsoir

    Je pense que le type varchar(max) convient à votre besoin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT
    	Champ1
    	, Champ2
    	, REPLACE(CONVERT(varchar(max), Champ3), CHAR(1), '-') AS Champ3
    FROM MaTable
    WHERE Champ1 = 101
    Emmanuel T.

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 75
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    Oui, varchar(max) convient parfaitement à mes besoins.

    Merci beaucoup.

    Cordialement,
    Sébastien

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

Discussions similaires

  1. remplacer les caractères spéciaux
    Par Invité dans le forum Servlets/JSP
    Réponses: 25
    Dernier message: 05/12/2008, 13h56
  2. Remplacer les caractères non imprimable
    Par totofe dans le forum C
    Réponses: 8
    Dernier message: 28/10/2008, 09h29
  3. Remplacer les Caractères Null (Ascii 00) par autre chose
    Par wayak3 dans le forum Développement
    Réponses: 6
    Dernier message: 29/05/2008, 10h47
  4. Remplacer les caractères accentués dans une chaine
    Par shaun_the_sheep dans le forum Général Java
    Réponses: 5
    Dernier message: 07/05/2008, 10h41
  5. Réponses: 3
    Dernier message: 18/02/2008, 14h05

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