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

Adaptive Server Enterprise Sybase Discussion :

[T-SQL]Replace pour SQL sybase


Sujet :

Adaptive Server Enterprise Sybase

  1. #1
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 87
    Points : 42
    Points
    42
    Par défaut [T-SQL]Replace pour SQL sybase
    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

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 39
    Points : 48
    Points
    48
    Par défaut
    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+

  3. #3
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    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 !

Discussions similaires

  1. SQL Monitor pour SQL Server
    Par usf70 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 22/02/2012, 12h19
  2. [LINQ to SQL] Problème pour taper une base SYBASE
    Par lutecefalco dans le forum Accès aux données
    Réponses: 11
    Dernier message: 20/06/2008, 07h57
  3. SQL DMO pour SQL 2005 Express ?
    Par Najdar dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/11/2006, 13h49
  4. Listener Oracle différent pour SQL+ que pour AS10g?
    Par Aeternus dans le forum Oracle
    Réponses: 4
    Dernier message: 27/12/2004, 14h09

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