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

Macro Discussion :

Variable avec des quottes dans la clause where


Sujet :

Macro

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 154
    Points : 61
    Points
    61
    Par défaut Variable avec des quottes dans la clause where
    Bonjour,

    Je cherche à créer un table avec un nom variable en fonction d'une variable qui est aussi dans la clause where.

    Le soucis dans la clause where je dois encadrer la variable avec des ' par contre dans le nom de la table il ne me faut pas les '. Du coup j'ai créé 2 variables une avec les ' l'autre sans. Quand j'affiche le contenu des variables c'est bon par contre quand je les utilise j'ai un message d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    rsubmit ;
    %let code_remise = RPF005 ;
    %put Valeur du code &code_remise. ;
    %let filtre_code_remise = %nrstr(%')&code_remise.%nrstr(%');
    %put Valeur du filtre &filtre_code_remise. ;
     
    data remise_&code_remise. ;
    	set table_source (where =(discount_plan_key = &filtre_code_remise. )) ;
    run ;
     
    endrsubmit ;
    J'ai le message d'erreur
    161 %let code_remise = RPF005 ;
    162 %put Valeur du code &code_remise. ;
    Valeur du code RPF005
    163 %let filtre_code_remise = %nrstr(%')&code_remise.%nrstr(%');
    164 %put Valeur du filtre &filtre_code_remise. ;
    Valeur du filtre 'RPF005'
    165
    166 data remise_&code_remise. ;
    167 set table_source (where =(discount_plan_key = &filtre_code_remise.
    167! )) ;
    -
    22
    76
    ERROR: Erreur de syntaxe détectée lors de l'analyse de la clause WHERE.
    ERROR 22-322: Erreur de syntaxe ; syntaxe requise : un nom, une chaîne entre guillemets,
    une constante numérique, une constante date temps, une valeur manquante, (, *, +,
    -, :, INPUT, NOT, PUT, ^, ~.

    ERROR 76-322: Erreur de syntaxe ; l'instruction sera ignorée.

    168 run ;
    C'est comme toujours les histoires de caractères spéciaux

    D'avance merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 483
    Points : 1 552
    Points
    1 552
    Par défaut
    Bonjour,
    Essayes de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    %let filtre_code_remise = %nrstr(%')&code_remise.%nrstr(%');
    Par :
    %let filtre_code_remise= %quote("&code_remise.");
    Ward

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 154
    Points : 61
    Points
    61
    Par défaut


    ça fonctionne impeccable.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation des alias dans la clause WHERE d'une requête SELECT
    Par OursRêveur dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 13/07/2013, 04h34
  2. Réponses: 2
    Dernier message: 16/04/2008, 20h06
  3. Réponses: 3
    Dernier message: 18/09/2006, 20h55
  4. Réponses: 4
    Dernier message: 10/05/2006, 18h40
  5. Ordre des tests dans la clause WHERE
    Par Tans98 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 22/09/2004, 10h52

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