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

SAS Base Discussion :

PROC FCMP Problème accès à une fonction [PROC]


Sujet :

SAS Base

  1. #1
    Membre éclairé Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Points : 881
    Points
    881
    Par défaut PROC FCMP Problème accès à une fonction
    Bonjour,

    Je définis une fonction (simple pour test) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    proc fcmp outlib=sasMacro.MyFunctions.DateFunctions;
    	Function Test(nombre);
    		return(nombre);
    	EndSub;
    run;
    quit;
    Quand j'essaie d'accéder à cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    option cmplib=sasMacro.MyFunctions;
     
    data toto; set toto;
    	d=Test(age);
    run;
    J'obtiens :

    9153 d=Test(age);
    ----
    68
    ERREUR 68-185: La fonction TEST est inconnue, ou ne peut être accédée.
    Je n'arrive pas à comprendre pourquoi je n'arrive pas à accéder à cette fonction. Je la vois bien dans l'explorateur au bon endroit.

    En stockant la fonction dans la Work au lieu de SasMacro les symptômes sont les mêmes.

    Si quelqu'un a une idée je suis preneur.

    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 747
    Points : 978
    Points
    978
    Par défaut
    salut,

    Cette procédure construit des fonctions utilisables dans une liste (restreinte) de PROC et pas dans la DATA STEP.

    xav

  3. #3
    Membre éclairé Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Points : 881
    Points
    881
    Par défaut
    Citation Envoyé par xav2229 Voir le message
    salut,

    Cette procédure construit des fonctions utilisables dans une liste (restreinte) de PROC et pas dans la DATA STEP.

    xav
    Merci Xav pour ta réponse.

    J'avais pourtant vu sur le net des exemples où on utilisait une fonction crée avec PROC FCMP dans une étape data :

    Là par exemple dans cet article, page 5 ils utilisent dans un data _null_, une fonction crée avec PROC FCMP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    proc fcmp
    outlib=work.funcs.Test; /* where will the functions be saved */
    function whatAmI(); /* declare a function returning a number */
    return(42); /* return the number */
    endsub;
    function whereAmI() $; /* declare a function retuning a string */
    return('In Test'); /* return the string */
    endsub;
    quit;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    data _null_;
    rci = whatAmI();
    put rci=; /* should be 42 */
    rcc = whereAmI();
    put rcc=; /* should be In Test */
    run;
    J'ai essayé sur un data _null_, j'obtiens la même erreur.


  4. #4
    Membre éclairé Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Points : 881
    Points
    881
    Par défaut
    J'ai trouvé

    On peut appeler une fonction stockée dans une étape data à partir de la version 9.2 de SAS.

    En 9.1 on est en effet limité à un certain nombre de PROCs.

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

Discussions similaires

  1. Problème d'accès à une fonction js insérée dans un div via XSLT
    Par Piper1664 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/07/2006, 11h58
  2. [Mail] Problème d'accès à une fonction
    Par Lordsephiroth dans le forum Langage
    Réponses: 3
    Dernier message: 04/05/2006, 20h46
  3. Problème avec une fonction utilisateur !
    Par nalou dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/04/2006, 17h06
  4. Problème avec une fonction et un array
    Par Neal Morse dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/08/2005, 12h04
  5. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 12h33

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