Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
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 29/03/2011, 17h12   #1
Invité de passage
 
Laure
Inscription : octobre 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : Laure

Informations forums :
Inscription : octobre 2010
Messages : 13
Points : 2
Points : 2
Par défaut Fonctionnalité perdue avec la proc Export de 9.2: les quotes

Bonjour,

Je travaillais jusqu'à présent sur la version SAS 9.1.3.

Quand j'exporte mes données, la proc export a l'avantage de placer automatiquement un " ' " devant les données de mes variables caractères de telle façon que mes identifiants clients sur 9 chiffres qui commencent par un ou plusieurs 0 gardent leur format sous Excel.

Par exemple l'identifiant client 012054352 est exporté sous la forme '012054352 et ne bouge pas.

Mon groupe vient de passer à la version 9.2. Au départ j'étais contente parce que cette version permet d'insérer une option LABEL bien pratique qui permet d'exporter le label de mes variables plutôt que leur nom.

Mais voilà, sous SAS 9.2, la proc Export ne met plus l'apostrophe devant mes données !Excel ne tronque pas le zéro au premier abord, mais il suffit de rentrer dans la cellule et de taper entrer pour que la variable soit automatiquement prise comme un chiffre et ça ne me va pas du tout.
Il me faut absolument mon apostrophe.

Quelqu'un a t-il déjà été confronté à ce problème et l'a t-il résolu ?

Merci d'avance,

Laure.
Laurinette57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 18h08   #2
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Bonjour,
Je pense que c'est plus judicieux de passer par un filename, cela te permettra de forcer ta variable comme étant du alpha numérique, tu ne perdras pas ton fameux 0.
Ci-dessous la syntaxe (pour rappel).

Code :
1
2
3
4
5
6
filename myfile "C:\  \fichier.xls";
data _null_;
file myfile;
set mytable;
put num $9 var1 va2;
run;
Bonne soirée.
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 20h43   #3
Invité de passage
 
Laure
Inscription : octobre 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : Laure

Informations forums :
Inscription : octobre 2010
Messages : 13
Points : 2
Points : 2
Merci pour ta réponse.
Cependant, comme je fais beaucoup d'export et qu'en plus j'ai pas mal de variable caractères avec des chiffres je préfèrerai continuer sur mes exports.

C'est étrange, je viens d'essayer chez moi d'exporter une table de la sashelp (sashelp.company).

Code :
1
2
3
4
proc export DATA=sashelp.company 
            OUTFILE="C:\Users\Laure\Documents\Test export"
            dbms=excel REPLACE label; sheet="Test";
run;
Là ça marche, l'apostrophe y est.

La seule différence avec mon environnement boulot est que chez moi j'ai Office 2007 alors qu'à mon boulot, c'est Office 2002.

Du coup je ne sais pas, peut-être est-ce le dbms qui fait ça.

Si vous avez une idée concernant cette étrangeté, je suis preneuse.
Laurinette57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 10h32   #4
Membre du Club
 
Homme Fabien
Inscription : novembre 2008
Messages : 59
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Localisation : France

Informations forums :
Inscription : novembre 2008
Messages : 59
Points : 56
Points : 56
Bonjour,

Regarde sur ce petit exemple les différences avec DBMS :
Avec DBMS = XLS l'apostrophe disparait.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
%let chemin = %sysget (userprofile);
DATA table1;
format VAR1 $10. VAR2 $10. VAR3 $10.;
informat VAR1 $10. VAR2 $10. VAR3 $10.;
INPUT VAR1 $ VAR2 $ VAR3 ;
CARDS ;
MARTHA MARHTA 00010
DIXON DICKSONX 00010
DWAYNE DUANE 100000
;
run;
PROC EXPORT DATA=table1
OUTFILE= "&chemin.\Bureau\tmp1.xls"
DBMS=EXCEL REPLACE;
RUN;
PROC EXPORT DATA=table1
OUTFILE= "&chemin.\Bureau\tmp2.xls"
DBMS=EXCEL2000 REPLACE;
RUN;
PROC EXPORT DATA=table1
OUTFILE= "&chemin.\Bureau\tmp3.xls"
DBMS=XLS REPLACE;
RUN;
Suistrop
suistrop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 11h08   #5
Invité de passage
 
Laure
Inscription : octobre 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : Laure

Informations forums :
Inscription : octobre 2010
Messages : 13
Points : 2
Points : 2
Bonjour suistrop,

J'ai lancé ton programme et pour les 3 exports je ne recupère pas d'apostrophe.

C'est la panique, je travaille énormément avec des identifiants clients et des identifiants contrats comprenant des 0 au début.

J'ai contacté le service client SAS. J'espère qu'ils vont me trouver une solution.

Je ne sais pas si ça a à voir, j'ai la version SAS 9.2 TS Level 2M0 et Office 2002.

Apparemment le M0 veut dire que j'ai la version SAS 9.2 sans aucun correctif.

J'espérais qu'il y ait une option qui force l'ajout de l'apostrophe devant mes variables caractère. Je viens de mettre mes collègues au courant. On est beaucoup de stateux dans la boite et ça va vite devenir problématique !
Laurinette57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 13h25   #6
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 701
Points : 1 701
bonjour;

essaies avec export CSV.
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 13h47   #7
Membre du Club
 
Homme Fabien
Inscription : novembre 2008
Messages : 59
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Localisation : France

Informations forums :
Inscription : novembre 2008
Messages : 59
Points : 56
Points : 56
Salut,

Et avec ce type d'export?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
%let chemin = %sysget (userprofile);
DATA table1;
format VAR1 $10. VAR2 $10. VAR3 $10.;
informat VAR1 $10. VAR2 $10. VAR3 $10.;
INPUT VAR1 $ VAR2 $ VAR3 ;
CARDS ;
MARTHA MARHTA 00010
DIXON DICKSONX 00010
DWAYNE DUANE 100000
;
run;
libname toexcel EXCEL "&chemin.\Bureau\tmp1.xls";
DATA toexcel.table1;
	SET table1;
run;
LIBNAME toexcel CLEAR;
Suistrop
suistrop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 14h05   #8
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Bonjour,

@Suitrop: ça marche nickel ta méthode, pas besoin de lister les variables
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 15h06   #9
Invité de passage
 
Laure
Inscription : octobre 2010
Messages : 13
Détails du profil
Informations personnelles :
Nom : Laure

Informations forums :
Inscription : octobre 2010
Messages : 13
Points : 2
Points : 2
Bonjour tout le monde,

Merci pour toutes ces suggestions suistrop.

Bon, et bien même avec la libname excel je ne récupère mes apostrophes.

Je suis bien embetée.

J'ai contacté le support sas et été mise en contact avec un consultant SAS qui a testé l'export de son coté et, pour lui aussi, les apostrophes ne sont plus ajoutée avec la version 9.2.

Son mail :
Citation:
J'ai effectué un test en SAS9.2TS2M3 et je vous confirme que le comportement obtenu est le même à savoir qu'il n'y a plus de simple quote générée devant les valeurs alphanumériques lors de l'utilisation de la proc EXPORT vers Excel.
Ceci s'explique par le fait que SAS9.1.3 et SAS9.2 s'appuient sur des composants Microsoft différents.

En effet SAS 9.1.3 utilse le Microsoft Jet Engine alors que SAS 9.2 utilise le Micorosoft Access Connectivity Engine.
Ce changement a été nécessaire afin de pouvoir traiter les nouveaux formats de Microsoft Office et en l'occurence les fichiers au format 2007, mais entraîne malheureusement des effets de bords.

Maintenant, après une recherche approfondie, il s'avère que l'ajout d'une simple quote était considéré comme un problème et était dû à un historique avec Lotus (ancêtre d'Excel).
Vous trouverez cette information ci-dessous:

--------------------------------------------------------------

SAS note 17343: PROC EXPORT to Excel adds single leading quote to character values
Lien: http://support.sas.com/kb/17343

PROC EXPORT, when exporting data to Excel, preceeds each character value
that is written out with a single leading quote. This is the proper
behavior, and began with the original Lotus applications. The
spreadsheet format was originally designed for numeric data and
mathematical functions. Since a spreadsheet would take only numbers, in
order to enter an alpha character (it was called a Label), you had to
preceed the entry with a single-quote.

This single quote is not part of the text value, however. It is just
displayed in the contents box. There are no settings or options in PROC
EXPORT (or the Export Wizard) that will alter the behavior, but it
should not cause any issues with the data in Excel.

--------------------------------------------------------------

Il n'est pas possible de contrôler ce comportement à travers la proc EXPORT.
Si l'ajout d'une simple quote est réellement un besoin pour votre entreprise, vous pouvez contourner le problème en utilisant les liens DDE (pilotage d'Excel à distance via des commandes) dont vous trouverez la documentation au lien suivant:
http://support.sas.com/documentation...er.htm#dde.htm

Je vous remercie par avance de m'indiquer si vous avez des questions complémentaires.
Comprenant qu'il n'est pas forcément possible d'utiliser des "contournements" à l'échelle d'une entreprise, il me dit qu'il va enquêter sur le sujet et surtout pourquoi, selon que l'on a des office/sas/windows différents on récupère les apostrophes... ou pas
Laurinette57 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h48.


 
 
 
 
Partenaires

Hébergement Web