Précédent   Forum des professionnels en informatique > Bases de données > Sybase
Sybase Forum sur la base de données Sybase. Avant de poster -> F.A.Q Sybase, Tutoriels Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/02/2006, 09h22   #1
Invité de passage
 
Inscription : avril 2002
Messages : 40
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 40
Points : 2
Points : 2
Par défaut [ASE][T-SQL]Sup espaces

Y-a-t-il une fonction pour supprimer les espaces entre 2 mots.
Je connais le RTrim (qui sup les espaces à droite du mot) et LTrim (pour la gauche) mais pour sup au milieu c'est quoi ?

Ex : je veux que "PLANETE PAT" devienne "PLANETEPAT"

NB je suis en ASE 12.5
bdf94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 17h12   #2
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Merci de lire avant tout ceci

En quelle version êtes-vous ? Dès 15, il y a replace(xxx, ' ','')... sinon il y a l'utilsiation de fonctions Java (mais il faut le module Java...) qui seront sans doute meilleur que le traitement de chaîne via pathindex...
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql
Administrateur SAP
Mes articles

Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 17h59   #3
Invité de passage
 
Inscription : avril 2002
Messages : 40
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 40
Points : 2
Points : 2
Je suis en ASE 12.5
bdf94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 09h55   #4
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Vous avez le module Java ?
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql
Administrateur SAP
Mes articles

Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 09h59   #5
Invité de passage
 
Inscription : avril 2002
Messages : 40
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 40
Points : 2
Points : 2
Non pas de module Java
bdf94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 14h01   #6
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 300
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 300
Points : 1 504
Points : 1 504
Envoyer un message via AIM à mpeppler
Le str_replace() existe à partir de 12.5.2:

select str_replace(source, ' ', NULL)

Michael
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 14h17   #7
Invité de passage
 
Inscription : avril 2002
Messages : 40
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 40
Points : 2
Points : 2
Le str_replace() ne fontionne pas non plus
bdf94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 14h57   #8
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
Code :
SELECT str_replace('Mon Test', ' ', '')
... vous donne quoi ?
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql
Administrateur SAP
Mes articles

Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 14h58   #9
Invité de passage
 
Inscription : avril 2002
Messages : 40
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 40
Points : 2
Points : 2
Eh ben ça ne marhce pas sur ma version de ASE
bdf94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 15h45   #10
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 300
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 300
Points : 1 504
Points : 1 504
Envoyer un message via AIM à mpeppler
C'est possible qu'il faille 12.5.3 pour que cela marche.

En tous les cas avec 12.5.3 j'ai:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
[21] PEPM.master.1> declare @str varchar(20)
[21] PEPM.master.2> SELECT @str='ceci est un test'
[21] PEPM.master.3> SELECT str_replace(@str, ' ', NULL);
(1 row affected)
 
 -----------------------------------------------------------------
 ceciestuntest  
 
(1 row affected)
[22] PEPM.master.1> SELECT @@version;
 
 ------------------------------------------------------------------
 Adaptive Server Enterprise/12.5.3/EBF 13204 ESD#6/P/Linux Intel/Enterprise 
Linux/ase1253/1945/32-bit/OPT/Thu Jan 19 22:46:02 2006 
 
(1 row affected)
[23] PEPM.master.1>
Michael
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 15h52   #11
Invité de passage
 
Inscription : avril 2002
Messages : 40
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 40
Points : 2
Points : 2
Voici le message d'erreur que j'ai pour ce script :

Server Message: Number 14216, Severity 16
Server 'INFOCENTRE_CDG', Line 3:
Function 'str_replace' not found. If this is a SQLJ function, use sp_help to check whether the object exists (sp_help may produce a large amount of output).
bdf94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 16h23   #12
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 300
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 300
Points : 1 504
Points : 1 504
Envoyer un message via AIM à mpeppler
Donc vous avez une 12.5 avant 12.5.0.3. (select @@version pour vérifier)

Je vous envourage fortement à upgrader vers une version plus récente si c'est possible pour éviter les bugs présents dans les versions 12.5.0.x avant 12.5.0.3.

Michael
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2006, 09h41   #13
Invité de passage
 
Inscription : avril 2002
Messages : 40
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 40
Points : 2
Points : 2
Version = 12.5.0.1

Mais on ne compte pas upgrader la version
bdf94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 17h43   #14
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 17
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 17
Points : 10
Points : 10
Tu peux passer par une petite procédure utilisant les fonctions de chaîne CHARINDEX et STUFF

Code :
1
2
3
4
5
6
7
8
CREATE PROCEDURE trim (@chaine varchar(32) OUT) AS BEGIN
    DECLARE @position int
    SELECT  @position = CHARINDEX(' ', @chaine)
    WHILE ( @position > 0 ) BEGIN
        SELECT @chaine = STUFF(@chaine, @position, 1, NULL)
        SELECT @position = CHARINDEX(' ', @chaine)
    END
END
Et pour l'appeler (en réutilisant la même variable)
Code :
1
2
3
4
5
6
DECLARE @chaine varchar(32) 
SELECT  @chaine = 'rendez-vous sur Developpez.com !'
 
EXEC trim @chaine = @chaine OUT
 
SELECT  @chaine
Tu peux modifier la procédure par la suite pour l'élargir à une proc de remplacement de caractères.
Tu pourras trouver plus de fonctions sur les chaînes de caractères ici.
Semhur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h52.


 
 
 
 
Partenaires

Hébergement Web