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 :

[Macro] Nom de ma table avec la valeur du into: nom de mon proc sql


Sujet :

Macro

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 34
    Points : 22
    Points
    22
    Par défaut [Macro] Nom de ma table avec la valeur du into: nom de mon proc sql
    Bonjour,

    J'aimerais utiliser la valeur de la variable macro into :nom de ma requête SQL
    pour mettre son contenu dans le nom de ma table de mon prochain data et cela ne fonctionne pas. L'erreur se situe dans le data et nom dans le proc sql qui fonctionne très bien. La valeur de ma variable into:nom est bonjour

    À noter que j'ai ajouté l'option OUTOBS=1 pour avoir seulement une valeur :

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    PROC SQL OUTOBS=1;                   
    Select *                             
    from connection to oracle            
    (select distinct T1."NOM" into :passe
    FROM "MATABLE" T1                    
    ORDER BY T1."NOM" desc);             
    QUIT;                                                            
                                                                         
    DATA NOUVELLE_&passe;                
      SET MATABLE;                       
    RUN;
    Je vous remercie déjà à l'avance.

  2. #2
    Membre émérite

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Points : 2 329
    Points
    2 329
    Par défaut
    Je crois que c'est un problème d'espace.
    Regarde le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    data tt;
    a=1;output;
    a=3;output;
    run;
    proc sql outobs=1;
    select distinct a into :v
    from tt;
    quit;
    %put &v;
    data t_%cmpres(&v);set tt;
    run;

  3. #3
    Membre éprouvé
    Avatar de steelspirit
    Homme Profil pro
    SAS discute
    Inscrit en
    Janvier 2008
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SAS discute
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 472
    Points : 916
    Points
    916
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from connection to oracle            
    (select distinct T1."NOM" into :passe
    Le into dans du SQL Passthrough marche je savais pas

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 34
    Points : 22
    Points
    22
    Par défaut
    Merci pour votre aide, par contre la première exemple ne fonctionne pas.
    Ne ne pouvous utiliser un into dans ma requête SQL.

  5. #5
    Membre éprouvé
    Avatar de steelspirit
    Homme Profil pro
    SAS discute
    Inscrit en
    Janvier 2008
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SAS discute
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 472
    Points : 916
    Points
    916
    Par défaut
    "into" est spécifique à SAS. Ici tu envois ta requête dans oracle (ça s'appel du SQL pass-through) mais oracle ne connais pas "into".
    Donc "into" doit être en dehors de la sous-requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    PROC SQL OUTOBS=1;                   
    Select nom
    into :passe                             
    from connection to oracle            
    (select distinct T1."NOM"
    FROM "MATABLE" T1                    
    ORDER BY T1."NOM" desc);             
    QUIT;

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 34
    Points : 22
    Points
    22
    Par défaut
    Un gros merci, ça fonctionne comme je veux

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/12/2007, 16h05
  2. Réponses: 3
    Dernier message: 13/12/2006, 01h20
  3. [VB6]Mettre à jour une table avec les valeurs d'une DATAGrid
    Par mbzhackers dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 26/05/2006, 20h56
  4. Update d une table avec plusieurs valeurs
    Par Nadaa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/05/2006, 08h58
  5. [Access] Nom d'une table avec un espace dans SQL
    Par Corsaire dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/04/2006, 15h50

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