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

DataStage Discussion :

Utilisation de "like" dans DataStage


Sujet :

DataStage

  1. #1
    Nouveau Candidat au Club
    Utilisation de "like" dans DataStage
    Bonjour,

    dans le cadre d'un mapping que j'effectue avec datastage,je cherche à éditer une requête dans laquelle je fais intervenir un like.

    j'en ai fait une mais je la requête est signalée comme erreur.pourriez vous m'indiquer la bonne synthaxe s'il vous plait?


    If variable1 like '____T'
    and(variable2 like 'HZ00%'
    or variable2 like 'HZ96%'
    or variable2 like 'HZ97%'
    or variable2 like 'HZ98%')
    Then substrings(variable2,0,4,:"xy")
    End

    ici je réalise un substrings sur la variable2 en ayant respecté les 5 conditions indiquées ci dessus.

    Je vous remercie,

    Richi

  2. #2
    Membre éprouvé
    Bonjour,

    Moi je ferais plutôt ça comme ça :

    If variable1[1] = 'T'
    and(variable2[1,4] = 'HZ00'
    or variable2[1,4] = 'HZ96'
    or variable2[1,4] = 'HZ97'
    or variable2[1,4] = 'HZ98')
    Then variable2[1,4]:"xy"
    End

    Et ce serait encore mieux d'utiliser une variable pour stocker la valeur variable2[1,4].

    Du point de vue perfs, c'est mieux de faire un substring et un test avec une égalité, plutôt qu'un like.

    Sinon l'erreur devait venir de ça : substrings(variable2,0,4,:"xy")
    Est-ce que ce n'était pas plutôt ça que tu voulais faire ? substrings(variable2,0,4):"xy"

    Nicolas

  3. #3
    Responsable Approche théorique du décisionnel

    Je suis d'accord avec nico, il vaut mieux éviter le like ce n'est pas très performant

    Sinon
    Citation Envoyé par DevNico Voir le message

    If variable1[1] = 'T'
    --> je dirais plutôt
    If variable1[5,1] = 'T'

    non ?
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  4. #4
    Membre éprouvé
    Citation Envoyé par john malkovich Voir le message

    --> je dirais plutôt
    If variable1[5,1] = 'T'

    non ?
    A priori, il s'agit de vérifier que le dernier caractère est un 'T' (c'est comme ça que je l'ai compris).

  5. #5
    Responsable Approche théorique du décisionnel

    ah oui, j'avais oublié cette fonctionnalité sous Datastage et confondu avec la fonction substr d'Oracle
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !