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