Community deutschsprachiger SAS-Anwender und -Programmierer

Antworten
Dies ist eine offene Gruppe. Melden Sie sich an und klicken Sie auf die Schaltfläche „Gruppe beitreten“, um Mitglied zu werden und damit zu beginnen, Beiträge in dieser Gruppe zu veröffentlichen.
Highlighted
Occasional Contributor
Beiträge: 15
Fehlermeldung möglich bei Tippfehlern in Variablennamen?

Hallo zusammen,

wenn ich in einem Datenschritt einen Tippfehler mache, z.b. BEZEICHER (falsch) statt BEZEICHNER (richtig),

laufe ich in die Gefahr bei Abfragen/Vergleichen auf missing value unabsichtlich zu reagieren.

 

Gibt es eine Option / Systemoption, welche Tippfehler in (Makro-)Variablennamen kategorisch unmöglich macht?

 

 

Beste Grüße

Wolfgang Müller

 

Super User
Beiträge: 7.431
Re: Fehlermeldung möglich bei Tippfehlern in Variablennamen?

Da SAS nicht deklarativ ist und Variablen dynamisch aus dem Code heraus generiert, ist eine solche Fehlerbedingung unmöglich zu erkennen. Man kann nur durch aufmerksames Studium des Logs (... is unitialized!) Tippfehler aufspüren. Und natürlich die Spalten in den Ausgabebeständen kontrollieren, weil falsch benannte Variablen dort auch auftauchen, wenn man nicht eine taxative keep-Liste verwendet.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Occasional Contributor
Beiträge: 15
Re: Fehlermeldung möglich bei Tippfehlern in Variablennamen?

Ist es denn möglich bei "uninitialized" im Log, einen Fehler auszuwerfen?

Bei 8 Mio. Records in 300 Spalten ist das sichten doch etwas schwierig ...

 

Wann verwendet man taxative keep-Listen?

 

Beste Grüße

Wolfgang Müller

 

Valued Guide
Beiträge: 3.208
Re: Fehlermeldung möglich bei Tippfehlern in Variablennamen?
[ Bearbeitet ]

Das abahandling mit fehlers im code gibt es unglaublich vieles met SAS.
http://support.sas.com/documentation/cdl/en/lrcon/68089/HTML/default/viewer.htm#n1nzmsupywf45qn1m6j1...
Die meisten optionen sind wie die altere gewohnheit.  

VARINITCHK=
specifies whether to stop or continue processing a DATA step when a variable is not initialized. You can also specify the type of message that is written to the SAS log.
http://support.sas.com/documentation/cdl/en/lesysoptsref/68023/HTML/default/viewer.htm#n039l39682ccg...

Das ubliche ist "note"  andere das im "error"

Mit Eguide 7.1 gibt es ein speziellen venster mit alle notes warning errors.
---->-- ja karman --<-----
Occasional Contributor
Beiträge: 15
Re: Fehlermeldung möglich bei Tippfehlern in Variablennamen?

Vielen Dank ja karmann, dass ist die Lösung!!!

 

options VARINITCHK=ERROR;

 

Beste Grüße

Wolfgang Müller

 

Super User
Beiträge: 7.431
Re: Fehlermeldung möglich bei Tippfehlern in Variablennamen?

Log öffnen, Strg-F tippen und "unitialized" eingeben ist doch kein Problem.

Wer bei der Entwicklung einese SAS-Programms nicht intensiv das Log studiert, kommt sowieso auf keinen grünen Zweig.

Wenn es in weiterer Folge in einem Batchjob auftritt, kann man das ja im Wrapper-Script mit einem grep auf das Logfile abfangen.

 

Ob die 300 Spalten in 1 Satz oder in 8 Millionen sind, ist irrelevant. Sind immer nur 300 Spalten.

Um sich die Fehlersuche zu erleichtern, kann man ja die Spalten eines Bestandes aus SASHELP.VCOLUMN extrahieren und dann wieder mit SAS-Mitteln nach Fast-Doubletten suchen, die auf einen Tippfehler hindeuten.

 

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Occasional Contributor
Beiträge: 15
Re: Fehlermeldung möglich bei Tippfehlern in Variablennamen?

Herr Bremser, das log ist voll mit Informationen. Davon auch einige verwirrend, oder wie ist der Zusammenhang mit der Zeilennummer zu verstehen? Die Zeile zeigt nicht auf den Code sondern auf irgendetwas anderes ....

 

Wenn ich nach jeder Fehlermeldung in 10 Prozessflüssen, bei jeweils 10 Programmen händisch suchen muss, werde ich auf keinen grünen Zweig mit SAS kommen.

 

Beste Grüße

Wolfgang Müller

 

Super User
Beiträge: 7.431
Re: Fehlermeldung möglich bei Tippfehlern in Variablennamen?

Wenn man entweder die keep= data set option oder das keep statement verwendet, werden nur die aufgeführten Variablen in den Ausgabebestand aufgenommen. Das meinte ich mit taxativ. In so einem Fall kann man falsch getippte Variablen nicht im Bestand sehen.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers