François Bourbeau, retraité Jean Hardy, Services Conseils Hardy Inc. Le 30 octobre 2013.

Documents pareils
Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

L export de SAS vers Excel expliqué à ma fille

Langage SQL : créer et interroger une base

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

Mysql. Les requêtes préparées Prepared statements

Gestion des utilisateurs et de leurs droits

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Chapitre 5 : Les procédures stockées PL/SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

420-PK6-SL Banques de données Avancées UTILISATEURS

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Le Langage De Description De Données(LDD)

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

1/ Présentation de SQL Server :

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl , 17 novembre, Lyon. Alexis Sukrieh

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

INITIATION AU LOGICIEL SAS

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

ACTIVITÉ DE PROGRAMMATION

OPTIMISEZ LES PERFORMANCES DE TRAITEMENT DE VOS DONNEES AVEC SAS/ACCESS. Sommaire

SAS de base : gestion des données et procédures élémentaires

Fichiers, dossiers, enregistrer et arborescence

Introduction à JDBC. Accès aux bases de données en Java

Bases de données et sites WEB

Formation au logiciel SAS Statistical Analysis System

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Guide d'installation rapide TFM-560X YO.13

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Les chaînes de caractères

Mysql avec EasyPhp. 1 er mars 2006

TP Bases de données réparties

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Le langage SQL Rappels

Notes de cours : bases de données distribuées et repliquées

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

TP3 : Creation de tables 1 seance

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

2011 Hakim Benameurlaine 1

LES ACCES ODBC AVEC LE SYSTEME SAS

Les macros SAS. Introduction. Cette partie très importante : il vous faudra utiliser le macrolangage pour réaliser votre projet de programmation.

Sendmail milter/greylisting

Auto-évaluation SQL. Document: f0453test.fm 19/04/2012. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Bernard HAMM, Évelyne LAVOISIER

Stockage du fichier dans une table mysql:

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Leica Application Suite

CREATION WEB DYNAMIQUE

Bases de données relationnelles

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Création et Gestion des tables

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

PHP 5. La base de données MySql. A. Belaïd 1

Installation d'un serveur FTP géré par une base de données MySQL

Configuration de l imprimante sous Gnu/Linux

STAGE IREM 0- Premiers pas en Python

Mise en œuvre des serveurs d application

Cours Informatique Master STEP

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Gestion d utilisateurs et stratégie systèmes.

I. MySQL : Serveur et SGBD

Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés Volubis.fr

Initiation à la programmation en Python

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

Création de Sous-Formulaires

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

FileMaker 13. Guide de référence SQL

Le Langage SQL version Oracle

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

Configurer la supervision pour une base MS SQL Server Viadéis Services

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Base de données relationnelle et requêtes SQL

I. Introduction aux fonctions : les fonctions standards

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Programme awk------introduction rapide

Tutorial Ophcrack. I) Ophcrack en API. (ou comment utiliser Ophcrack pour recouvrir un mot de passe sous Windows XP et Windows Vista)

Trier les ventes (sales order) avec Vtiger CRM

CHAPITRE 4 POLITIQUES DE CONTRÔLES DES ACCÈS SOUS ORACLE ADMINISTRATION ET TUNING DE BASES DE DONNÉES 10/05/2015 RESPONSABLE DR K.

MANUEL TBI - STARBOARD

PROJET 1 : BASE DE DONNÉES REPARTIES

Introduction au Système de Gestion de Base de Données et aux Base de Données

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Partie 0 : Gestion des tablespace et des utilisateurs... 3

FileMaker 13. Guide ODBC et JDBC

Entraînement à l épreuve de QCM 40 mn

1 Imputation par la moyenne

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Olivier Mondet

Bases de données et sites WEB Licence d informatique LI345

BTS/CGO P10 SYSTEME INFORMATION Année

Pour les caméras IP de modèles : QSTC201 QSTC211. Surveillance à distance via Internet Guide de démarrage

Java DataBaseConnectivity

Mise à jour des logiciels de vidéo de Polycom

Transcription:

François Bourbeau, retraité Jean Hardy, Services Conseils Hardy Inc. Le 30 octobre 2013.

1. Introduction 2. Emploi des variables Macros et affectations simples 3. Les Macros SAS 4. Conclusion

1. Introduction Le langage Macro sert à : Passer du code SAS (texte) au logiciel sas. Réduire la quantité de code SAS. Se faire des utilitaires Carte de l'environnement du logiciel Macro Facility Pour comprendre comment ça fonctionne.

Variables Macros Automatiques Dépôt de Données Dépôt de Programmes Dépôt Temporaire Macros Compilées Dépôt Des Macros SAS Dépôt de Routine Macro Début de session M F S A S Options macros Éditeur SAS Scanner de mots Variables macros Compilation Exécution Compilation Exécution Ligne du temps

1.3 Explication de la carte La carte est composé de 14 éléments : Dont 5 sont connus : Dépôt de données Dépôt de programme Éditeur SAS Compilation de programmes SAS Exécution de programmes SAS. Les deux composantes à découvrir vont nous permettre d'utiliser les 9 derniers éléments: Les variables Macros Le langage Macros ou macro Facility ( MF) qui fait parti de SAS de Base.

2. À quoi servent les variables MACRO? Elles servent à fournir des chaînes de caractères.

2. Les variables Macros Variables Macros Automa- tiques Étape Data Proc SQL Proc print Macro Dépôt de Données Éditeur SAS Début de session M F S A S Scanner de mots Variables Macros Compilation Exécution Ligne du temps

2.1 Explication de la carte variables macros Des 9 éléments de la carte de l'environnement MACRO 3 éléments sont utilisés par les variables MACRO. Variables MACRO Scanner de mots Variables MACRO automatiques.

2.2 Emploi d'une variable Macro Proc PRINT DATA=educ.pers; FOOTNOTE "Document produit par &sysuserid"; RUN; 34 340 DELMON 84 VENTE 7 6,880.87 4,692.21 35 350 MATHIEU 84 ADMIN 5 7,967.33. Document produit par Serv. Conseils Hardy

2.3 Les variables Macros Variables Macros Automa- tiques Étape Data Proc SQL Proc print Macro Dépôt de Données Éditeur SAS Début de session M F S A S Scanner de mots Variables Macros Compilation Exécution Ligne du temps

2.3 Processus suivi par l'ordinateur Lorsque l'utilisateur soumet le code, celui-ci est analysé par «scanner de mots» qui : Envoie les mots commençant par & suivi d'une lettre ou _, à Macro Facility pour remplacement. Envoie les autres mots à SAS pour compilation. Lorsque SAS a reçu les mots jusqu'à l'énoncé «run;» il compile le programme ou la procédure. Lorsque la compilation est valide SAS l'exécute.

2.4 Caractéristiques générales Temporaires Contiennent du texte. Toutes les composantes SAS peuvent utiliser des variables Macros. Elles sont disponibles à la fin de l'étape créatrice.

2.4 Autres caractéristiques des variables Macro Le scanner de mots reconnaît une variable Macro par un & suivi d'un caractère autre que l'espace, selon les règles de nomenclature des variables SAS. Cette référence à une variable Macro peut se trouver n'importe où dans un programme SAS. Si la référence se trouve dans une chaîne de caractères, la chaîne doit être encadrée de guillemets (") et non d'apostrophes ('). Toujours résolue avant l'exécution de l'énoncé où elle se trouve.

2.4 Autres caractéristiques des variables macro Utilisables dans les étapes DATA ou Proc et routines Macro Existent pour la durée de la session SAS Ne peuvent pas être sauvegardées dans des fichiers, pour usage ultérieur (version 9.4 Proc presenv Proc Strait) Toutes de type caractère, même si leur valeur ne contient que des chiffres Longueur effective = celle de sa valeur courante (pas de longueur fixe comme variables de table) Longueur maximale : 65534 caractères Variables Macro automatiques sont définies et affectées de leur valeur par le système SAS.

2.5 Les variables Macro automatiques Quelques variables Macro automatiques: SYSDATE9 SYSTIME SYSLAST SYSUSERID Date du début de la session ou du travail en lot (Ex. 22AUG2013) Heure du début de la session ou du travail en lot (Ex. 10:53) Nom de la dernière table créée ou modifiée (Ex. EDUC.TEST) Identification de l'utilisateur (dans tous les environnements, en lot ou en interactif)

2.6 Affecter et utiliser une variable Macro Affecter une variable macro : En Code ouvert ou Macro on utilise : %LET Étape Data : Call Symput Proc SQL : INTO Utiliser la variable macro : En code ouvert, dans une définition de macro, dans une procédure ou dans une étape DATA; &nom_de_la_variable_macro. Aussi dans l'étape DATA; les énoncés SYMGET et RESOLVE.

2.7 Affecter une valeur à une var. Macro Utiliser l'énoncé %LET. Syntaxe : %LET varmacro = valeur; Exemples : %LET DEP=20; %LET NOM_FICH=PERS; Pas de & lors de la définition d'une variable Macro. Dans le deuxième exemple, même si NOM_FICH est affecté d'une valeur caractère, celle-ci n'est pas placée entre guillemets ou apostrophes.

2.7 Définir puis utiliser des var. Macro Exemple : %LET DEP=20; %LET NOM_FICH=PERS; LIBNAME EDUC "C:\EDUCSAS"; Proc PRINT DATA=EDUC.&nom_fich; WHERE DEPT=&dep; TITLE1 "Liste des employés du département &dep"; TITLE2 "(fichier &nom_fich)"; FOOTNOTE "Document produit par &sysuserid"; RUN;

2.7 Définir puis utiliser des var... (suite)

2.8 Affectation de var. Macro par Data CALL SYMPUT, une fonction de l'étape DATA, est la seule solution : Syntaxe : CALL SYMPUT("varMacro",var-caractère) CALL SYMPUT("varMacro",put(var-numérique,format) Le deuxième argument doit être une chaîne ou une valeur numérique convertie en chaîne par la fonction PUT de l'étape DATA. Exemple trouver la date de la plus ancienne tran-saction dans un fichier, qui doit demeurer trié par NOM, et l'utiliser dans un titre :

2.9 Exemple de CALL SYMPUT Proc SORT DATA=EDUC.ENTREVUE(KEEP=DATE MATR_P NOM PRENOM) OUT=TRI; BY NOM PRENOM; RUN; DATA _NULL_; SET TRI END=FIN; RETAIN X 9999999999; X=MIN(X,DATE); IF FIN THEN CALL SYMPUT("PREM_ENTR",PUT(X,YYMMDD10.)); RUN; Proc PRINT DATA=TRI NOOBS; TITLE "CANDIDATS INTERVIEWÉS DEPUIS LE &PREM_ENTR"; RUN;

2.10 Affectation de var. Macro par Proc SQL Syntaxe : SELECT expression INTO : varmacro FROM table ; Clause SELECT peut retourner plus d'une valeur si oui, utiliser la syntaxe suivante: SELECT expression INTO : varmacro SEPARATED BY "car" FROM table ;

2.11 Exemple d'affectation par Proc SQL Proc SQL; SELECT MIN(DATE) FORMAT=YYMMDD10. INTO : PREM_ENTR FROM EDUC.ENTREVUE; La variable Macro contient une valeur, la même que dans l'exemple précédent.

2.12 Afficher le contenu d'une var. Macro Utiliser l'énoncé ou la commande %PUT. Syntaxe : %PUT texte &varmacro ou _all_, _automatic_, _user_, _global_ ou _local_; Pas de guillemets autour du texte. Un & devant la variable Macro, comme lors de toute utilisation d'une variable Macro existante. Exemple : %PUT Variable DEP contient &DEP;

3. Le langage Macro Les Macro servent à écrire du code SAS. Langage de programmation propre aux Macros. Moduler le code SAS.

Variables Macros Automatiques Dépôt de Données Dépôt de Programmes Dépôt Temporaire Macros Compilées Dépôt Des Macros SAS Dépôt de Routine Macro Début de session M F S A S Options macros Éditeur SAS Scanner de mots Variables macros Compilation Exécution Compilation Exécution Ligne du temps

3 Explication de la carte La carte est composé de 14 éléments. Il reste 6 éléments à découvrir : Les options macros. Le compilateur MF L'exécuteur MF Le dépôt de routine macro. Le dépôt de macros SAS. Le dépôt temporaire de macros compilées.

3.1 L'environnement du logiciel Macro Facility À l ouverture de la session il y a : Création des variables Macros automatiques. Allocation des Macros SAS. Allocation de la bibliothèque Work où sera placé le catalogue SASMACR des Macros compilées. Les options Macros sont mises en place Optionnellement: Allocation de dépôts de données. Allocation du répertoire des programmes. Allocation du répertoire de routine Macros.

3.1 L'environnement du logiciel Macro Facility (MF)(suite) Les options Macro vont moduler le fonctionnement de MF. Donc à partir du moment où l'on soumet un traitement il y a intervention du scanner de mots pour déterminer si le traitement doitêtre exécuter par MF ou SAS. MF fait la gestion entre le compilateur et exécuteur. Une fois exécuté par MF, le code SAS généré est passé au compilateur SAS et de là en exécution.

3.2 Les routine Macro (exemple simple) Début de la définition Définition des paramètres Énoncé de commentaire Macro %Macro workdel(data=); %* Routine Macro détruisant les fichiers de la bibl. WORK dont le nom est spécifié dans le paramètre DATA= ; Proc DATASETS NOLIST LIBRARY=WORK; DELETE &data; QUIT; %mend workdel; %workdel(data=p:); Fin de la définition Code SAS Invocation de la routine Paramètres à l'invocation

3.2 Les routines Macro (exemple simple suite) %Macro workdel(data=); %* Routine Macro détruisant les fichiers de la bibl. WORK dont le nom est spécifié dans le paramètre DATA= ; Proc DATASETS NOLIST LIBRARY=WORK; DELETE &data; QUIT; %mend workdel; %workdel(data=pe:); Le texte ne débutant pas par % est transmis à MF pour compilation, après l'exécution de la macro tout le code est transmis à SAS pour compilation et exécution.

3.2 Les routines Macro (exemple simple suite) L'option MPRINT affiche au journal le code SAS généré par une routine Macro : 203 option mprint; 204 %workdel(data=pe:); MPRINT(WORKDEL): Proc DATASETS NOLIST LIBRARY=WORK; MPRINT(WORKDEL): DELETE pe:; MPRINT(WORKDEL): RUN; NOTE: Deleting WORK.PERS1 (memtype=data). NOTE: Deleting WORK.PERS2 (memtype=data). MPRINT(WORKDEL): QUIT;

3.3 Les Options SAS Macro Les options SAS Macro servent à gérer le comportement de MF. 2 groupes d'options Macro : Débogage Comportement ou les autres. Débogage Symbolgen, Mlogic, Mprint, Mlogicnest, Mprintnest. Comportement Sasautos, Mfile, Macro, Merror, Source, Source2...

Variables Macros Automatiques Dépôt de Données Dépôt de Programmes Dépôt Temporaire Macros Compilées Dépôt Des Macros SAS Dépôt de Routine Macro Début de session M F S A S Options macros Éditeur SAS Scanner de mots Variables macros Compilation Exécution Compilation Exécution Ligne du temps

3.4 Explication de la compilation de Macros Lorsque «scanner de mots» rencontre %Macro il passe le contrôle des opération au logiciel Macro Facility. Celui-ci prépare la compilation en stockant le texte qui suit jusqu'à l'énoncé %mend;. Il compile cette routine Macro. Qui retourne le résultat à SAS pour le mettre au journal. Sas poursuit le traitement. Les variables Macros sont irrésolues en attente de l'exécution de la Macro.

3.5 L'exécution de la routine Macro Lorsque le logiciel MF rencontre l'appel de Macro %Workdel(data=PE:);. Il effectue la recherche de la référence «workdel» dans: Catalogue MACR de la bibliothèque WORK. Dépôt de Macro SAS. Dépôt de Macros permanentes. Il arrête la recherche dès qu'il trouve. La compile si elle n'est compilée. L'exécute. Il envoie à SAS le résultat : Proc DATASETS NOLIST LIBRARY=WORK; QUIT; DELETE PE:;

3.6 Constituants des routines Macro Une routine Macro peut être constituée d'un ou plusieurs des éléments suivants : Énoncés Macro (%LET, %DO, %IF, %PUT, etc.) Fonctions Macro (%SUBSTR, %SCAN, %TRIM, etc.) Références à une variable Macro Code SAS

4. Conclusion Le langage Macro de SAS comprend deux composantes : Les variables Macros. Les routines Macros. Permettent de générer du code SAS. Sas 9.3 macro language reference. J'espère avoir démystifié ce logiciel qu'il est bon d'avoir dans sa trousse à outils de programmeur SAS.

%FIN