Bonjour
dans sql oracle j'ai la fonction REPLACE qui remplace une chiane dans une autre et renvoie le resulta, mais je ne trouve d'equivalent en sql SYBASE
si qlq un à un idée
merci d'avance
Bonjour
dans sql oracle j'ai la fonction REPLACE qui remplace une chiane dans une autre et renvoie le resulta, mais je ne trouve d'equivalent en sql SYBASE
si qlq un à un idée
merci d'avance
Bonjour,
La fonction str_replace devrait te convenir.
Voici un copier/coller de la doc ASE 12.5.1 'Manuel de reference' sur le sujet (ch2) :
Description
Remplace toute instance de la deuxième expression de chaîne (expression_chaîne2) présente au sein de la première expression de chaîne (expression_chaîne1) par une troisième expression (expression_chaîne3).
Syntaxe
replace("expression_chaîne1", "expression_chaîne2", "expression_chaîne3")
Paramètres
expression_chaîne1
chaîne source, ou expression de chaîne faisant l’objet de la recherche, exprimée sous la forme d’un type de données char, varchar, unichar, univarchar, varbinary ou binary.
expression_chaîne2
chaîne masque ou expression de chaîne à rechercher au sein de la première expression (expression_chaîne1). expression_chaîne2 est exprimée sous la forme d’un type de données char, varchar, unichar, univarchar, varbinary ou binary.
expression_chaîne3
expression de chaîne de remplacement, exprimée sous la forme d’un type de données char, varchar, unichar, univarchar, binary ou varbinary.
Exemples
Exemple 1 Remplace la chaîne def dans la chaîne cdefghi par la chaîne yyy.
replace("cdefghi","def","yyy")
-------------
cyyyghi
(1 row(s) affected)
Exemple 2 Remplace tous les espaces par « toyota ».
select str_replace("chevy, ford, mercedes", "","toyota")
----------
chevy,toyotaford,toyotamercedes
(1 row(s) affected)
Remarque Adaptive Server convertit une constante de chaîne vide par une chaîne d’1 espace automatiquement afin de distinguer la chaîne des valeurs NULL.
Utilisation
•Renvoie des données varchar si expression_chaîne (1,2 ou 3) est de type char ou varchar.
•Renvoie des données univar si expression_chaîne (1,2 ou 3) est de type unichar ou univarchar.
CHAPITRE 2 Fonctions Transact-SQL
Manuel de référence : éléments syntaxiques 223
•Renvoie des données varbinary si expression_chaîne (1,2 ou 3) est de type binary ou varbinary.
•Tous les arguments doivent partager le même type de données.
•Si l’un des arguments est NULL, la fonction renvoie la valeur NULL.
•La longueur du résultat peut varier en fonction des valeurs connues pour les arguments lors de la compilation de l’expression. Si tous les arguments sont des variables aux valeurs constantes connues, Adaptive Server calcule la longueur du résultat comme suit :
result_length = ((s/p)*(r-p)+s)
where
s = length of source string
p = length of pattern string
r = length of replacement string
if (r-p) <= 0, result length = s
•Si la chaîne source (expression_chaîne1) est une colonne et que expression_chaîne2 et expression_chaîne3 sont des valeurs constantes connues au moment de la compilation, Adaptive Server calcule la longueur de résultat à l’aide de la formule ci-dessus.
•Si Adaptive Server est incapable de calculer la longueur du résultat parce que les valeurs des arguments ne sont pas connues au moment de la compilation de l’expression, la longueur de résultat utilisée est 255, à moins que l’indicateur de trace 244 soit activé. Dans ce cas, la longueur de résultat est 16 384.
• result_length ne dépasse jamais 16 384.
Normes
Niveau de conformité avec la norme SQL ANSI : extension Transact-SQL.
Autorisations
Tous les utilisateurs peuvent exécuter str_replace.
Voir aussi
Types de données
char, varchar, binary, varbinary, unichar, univarchar
Fonction
length
Si tu as des questions concernant ton cas précis, n'hésites pas a poster a nouveau.
A+
Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2
N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD
Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager