proc import dbms=excel2000 und SAS8.02

Hallo SAS Users,

mit PROC Import hab ich mal ein Excel2000 Sheet eingelesen. Jetzt auf einem anderen SAS-Server geht das komischerweise nicht mehr. Er meckert im Log folgendermaßen:

PROC IMPORT OUT=test
74 ! DATAFILE="xyz_variables_full.xls"
75                DBMS=excel2000 REPLACE;
ERROR:
DBMS type EXCEL2000 not valid for import.
NOTE: The SAS System stopped processing this step because of errors.
76     SHEET="z02";
77     GETNAMES=yes;
78   run;

Mir sagt mein SAS: About SAS System: SAS8.02

Laut vieler Quellen sollte proc import aber kein Problem sein unter SAS 8. Hat jemand ne Idee?

Viele Grüsse
D. Engfer

Lizenzproblem!

Hallo Herr Engfer!

Sie brauchen auf dem SAS-Server eine Lizenz für SAS/Access für PC-Dateien.

PROC IMPORT ist Bestandteile von SAS/Base. Jedoch die DBMS=excel200 ist Bestandteil von SAS/Access für PC-Dateien.

Eine Umweg wäre die Daten als CSV-Datei auf dem Server zu Speichern statt als Excel-File. PROC IMPORT kann dann DBMS=CSV verwenden.

Alle Textdateiformate (.csv .txt .dlm) können ohne SAS-Acess-Lizenz gelesen werden.

Gruß
Klaus Landwich

vielen dank

hallo Herr Landwich,

alles klar. Jetzt bräuchte ich bloß noch ne SAS Routine, um das csv File nach Einlesen wieder zu löschen aus dem Folder... never ending story. SAS 9 soll da besser sein oder?

Gruss

Löschen von externen Dateien mit SAS

Hallo,

hier ein paar Varianten zum Löschen von externen Dateien mit SAS:

* Erzeugen einer CSV-Datei zum Testen *;
proc export data=sashelp.class file='C:\TEMP\test.csv' dbms=csv;
run;

* Variante 1 über Betriebssystem-Befehle                    *;
* Hier wird Windows / DOS verwendet. Für UNIX entsprechende *;
* Befehle verwenden.                                        *;

* SAS Option zur Kommunikation mit dem Betriebssystem       *;
* XSYNC - SAS wartet auf das Betriebssystem                 *;
* NOXWAIT - Nach Abarbeiten der Betriebssystem-Befehle wird *;
* die DOS-Box geschlossen                                   *;
options xsync noxwait;

* Absetzen von Betriebssystem-Befehlen *;
* Möglichkeit 1:*;
%sysexec (del "C:\TEMP\test.csv");

* Möglichkeit 2:*;
%let rc=%sysfunc (system (del "C:\TEMP\test.csv"));
%put rc=&rc;

* Möglichkeit 3:*;
data _null_;
   rc = system (
'del "C:\TEMP\test.csv"');
   
put rc=;
   
if (rc ne 0) then do;
      msg=sysmsg ();
      
put rc= msg=;
   
end;
run;

* Die Qualität der Fehlerrückmeldung hängt vom Betriebssystem ab. *;
* Der Quellcode enthält OS-spezifische Befehle *;

* Bessere Variante über SAS-Funktion FDELETE *;
* Das ist fast betriebssystemunabhängig. Lediglich die Pfadangabe *;
* im Filename-Statement muss angepasst werden. *;
* Ist vom Programmieren aber aufwändiger *;

* CSV-Datei referenzieren... *;
filename csv 'C:\TEMP\test.csv';

* ...und Löschen. *;
* Möglichkeit 1:*;
%let rc=%sysfunc (fdelete (csv));
%put rc=&rc;

* Möglichkeit 2:*;
data _null_;
   
length msg $256;
   rc = fdelete (
'csv');
   
if (rc ne 0) then do;
      msg=sysmsg();
      
put rc= msg=;
   
end;
run;

* Referenz auf CSV-Datei entfernen *;
filename csv clear;

Gruß
Klaus Landwich

Hallo Herr

Hallo Herr Landwich,

herzlichen Dank.

Server ohne Office?

Kann es sein, dass auf dem System, auf dem SAS läuft, kein Office installiert ist?

Haben Sie ggf. SAS auch als Client istalliert? Dann können Sie den Code ohne rsubmit abschicken und es sollte funktionieren.

ja

darüber hab ich ja gar nicht nachgedacht. SAS starte ich von einem SAS-Server, lokal hab ich kein SAS auf dem PC. Das Excel sitzt aber lokal. Ich arbeite mit SAS interaktiv. Ein einfaches rsubmit/endrsubmit hilft aber leider auch nicht.

79   rsubmit;
     -------
     
180
ERROR: The SAS/CONNECT product with which the global statement 'rsubmit' is associated is
       either not licensed for your system or the product license has
expired. Please contact
       your SAS installation
representative.

Hab ich da überhaupt noch ne Chance?

Hab gerade entdeckt, dass der Remotedesktop mir auch Excel zur Verfügung stellt. Dann brauch ich doch gar kein rsubmit?

Ich fürchte mit proc import nicht

Mit proc import dürfte das nicht dann m.E. funktionieren.

Ich stecke da nicht allzu tief drin, aber vielleicht funktioniert es mit proc upload/download und/oder ODS

Siehe vielleicht hier:

http://www.sas.cc.vt.edu/xportsas.html

http://www.nesug.org/html/Proceedings/nesug04/po/po03.pdf

Gruß Roman Kolbe

Hab gerade entdeckt, dass

Hab gerade entdeckt, dass der Remotedesktop mir auch Excel zur Verfügung stellt. Dann brauch ich doch gar kein rsubmit?