Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Débutez
Débutez Forum concentrant les premières questions que l'on se pose en tant que débutant
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/08/2011, 10h29   #1
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 73
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 73
Points : 32
Points : 32
Par défaut Effacer le contenu d'une librairie sauf une table

Bonjour,

Je voudrais savoir comment effacer le contenu d'une libraire la work par ex mais en conservant uniquement quelques tables..
J'utilise :

Code :
1
2
PROC DATASETS LIBRARY=WORK NOLIST KILL; 
   RUN; QUIT;
mais elle efface toutes les tables..

Je ne connais pas ses options..
mohamed_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 10h34   #2
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

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

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
passes par une proc SQL;

Code :
1
2
3
4
5
6
7
8
9
 
 
proc sql;
DROP TABLE tab1;
DROP TABLE tab2;
DROP TABLE tab3;
DROP TABLE tab4;
DROP TABLE tab5;
quit;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 10h39   #3
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 73
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 73
Points : 32
Points : 32
Salut Sam,

je ne pourrai pas passer par une proc sql parce que au niveau le plus global, j'ai dans la work 37 tables avec des noms différents. Impossibles de faire

.
mohamed_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 10h40   #4
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

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

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
ou sinon avec toujours avec une proc dataset ;

Code :
1
2
3
4
 
proc datasets lib=malib;
    DELETE tabA  tab1-tab9;
run;
ici il supprime les table de tab1 jusqu'à la table tab9 et supprime aussi tabA.
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 10h45   #5
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

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

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
Citation:
Envoyé par mohamed_ Voir le message
Salut Sam,

je ne pourrai pas passer par une proc sql parce que au niveau le plus global, j'ai dans la work 37 tables avec des noms différents. Impossibles de faire

.
et bah il faut taper leurs noms à la main. c'est un peu comme le principe de suppression de variable dans une étape data ( le keep et le drop).
maintenant si t'es tables à supprimer ont au moins un prefix en commaun , tu peux utiliser le COLON ( .
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 10h57   #6
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 73
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 73
Points : 32
Points : 32
Rien à faire.

J ai essayé la proc datasets avec exclude mais error voir horror !!
mohamed_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 11h04   #7
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
Y a -t-il un moyen de detecter automatiquement les tables que tu souhaites conserver/ supprimer (ie, par rapport a un critere donne par exemple).

ca peut te permettre d'automatiser ta suppression -- plutot que de taper 37 fois a la mano les tables que tu veux supprimer..
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 11h16   #8
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 73
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 73
Points : 32
Points : 32
Bonjour Manoutz,

oui, les tables que je souhaite conserver commencent toutes par tab_
plus une autre qui est reco sur laquelle je me base pour les lancements ;

Code :
1
2
3
4
proc sql;
DROP TABLE _all_  
except tab_: ;
quit;
ça fonctionnerait ?
mohamed_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 11h30   #9
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

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

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
non
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 11h32   #10
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
tu peux essayer accessoirement


sinon tu as le statement save dans la proc dataset(mais il faut indiquer ton N: nombre de tables dans tab_, supposees successives):
Code :
1
2
3
4
 
proc datasets ;
save tab_1-tab_N reco ;
quit;
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/08/2011, 11h42   #11
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

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

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
donc sa sera :
Code :
1
2
3
4
 
proc datasets lib= malib nolist;
save tab_: ;
quit;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 11h45   #12
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
exact (+reco)

Code :
1
2
3
proc datasets lib= malib nolist;
save tab_: reco;
quit;
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 12h59   #13
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 73
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 73
Points : 32
Points : 32
Super.

ça fonctionne très bien ce bout de code !

Merci à vous deux.
mohamed_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h54.


 
 
 
 
Partenaires

Hébergement Web