Veröffentlicht am :
Verwaltung CREATION_INTERNE

Makro _DELETE: Physische Löschung von SAS-Dateien

Dieser Code ist auch verfügbar auf: Français Deutsch English Español
Wartet auf Validierung
Attention : Dieser Code erfordert Administratorrechte.
Dieses Makro wurde entwickelt, um Einschränkungen von PROC DELETE oder SCL FDELETE in bestimmten Versionen oder Konfigurationen zu umgehen. Es identifiziert die physischen Pfade von Dateien, die einer SAS©-Tabelle oder einem Katalog zugeordnet sind (unter Verwendung von hier nicht bereitgestellten Hilfsmakros wie %_suffix, %_dir, %_unwind) und führt einen Systembefehl ('rm -f' für Unix oder 'del' für Windows) aus, um diese dauerhaft zu löschen. Es enthält eine Urheberrechtsverwaltung.
Datenanalyse

Type : CREATION_INTERNE


Das Skript enthält einen Validierungsabschnitt (kommentiert), der eine Testtabelle 'pwd._test_' mit einem Index generiert, um die Funktionsweise der Löschung zu überprüfen.

1 Codeblock
MACRO
Erklärung :
Definition des Hauptmakros. Es erstellt eine Liste der zu löschenden Dateierweiterungen (mittels %_suffix und %_catext), durchläuft diese Erweiterungen, um den vollständigen Pfad der physischen Datei zu konstruieren, überprüft deren Existenz und startet einen Systembefehl (X-Befehl) zum Löschen.
Kopiert!
1%macro _delete(arg1, cat=&arg1, DATA=&cat);
2 
3%local i suffix file;
4 
5%let suffix=%_suffix %_catext;
6 
7%DO i=1 %to %_count(&suffix);
8 %let file=%_dir(%sysfunc(pathname(%_lib(&DATA))))%_data(&DATA).%scan(&suffix, &i, %str( ));
9
10 %IF %_exist(&file) %THEN x "%_unwind(rm -f, del) &file";;
11%END;
12 
13%mend _delete;
2 Codeblock
DATA STEP Data
Erklärung :
Validierungscode (kommentiert): Initialisiert eine lokale Bibliothek und erstellt ein Test-Dataset mit einem Index, das verwendet wird, um zu überprüfen, ob das Makro das Dataset UND die zugehörige Indexdatei korrekt löscht.
Kopiert!
1/*
2libname pwd '.';
3 
4data pwd._test_(index=(x));
5 x=1;
6 output;
7run;
8*/
3 Codeblock
MACRO CALL
Erklärung :
Validierungscode (kommentiert): Ruft das Makro _delete für die Testdatei und einen Katalog auf und überprüft dann den Verzeichnisinhalt mittels PROC CONTENTS, um die Löschung zu bestätigen.
Kopiert!
1/*
2%_delete(pwd._test_);
3%_delete(pwd.imlstor);
4 
5proc contents data=pwd._all_;
6run;
7*/
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright (c) 2001-2008 Rodney Sparapani. GNU General Public License.