libref for "work" data sets (one level name): WORK vs USER vs User= option

sas

    Next

  • 1. SAS short courses
    Hi SAS users !! I would highly appreciate if anybody could suggest me a very good online course (Short) or SAS learning. I can use SAS for regressiion analysis and trying to learn efficient data mining, sql and macro. Nirmala
  • 2. Program Error
    Can someone help me with error in this program data ndc; infile datalines dlm=",-*"; input age ndc_code; dosage = find(ndc_code, 2, "-"); do while dosage = "*"; dosage = substr(dosage, 2); end; if ((age <= 10) and (numdosage > 5)) then dosage_error = 1; end; datalines; 10, 12345-015-12 10, 12345-005-12 10, 12345-001-12 10, 12345-*15-12 10, 12345-*5-12 10, 12345-*45-12 10, 12345-*1-12 20, 12345-*25-12 20, 12345-*5-12 20, 12345-*1-12 20, 12345-*25-12 run;
  • 3. proc sql Utility file write failed. Probable disk full condition.
    try rerunning the code but with 'options=nothreads;' as the first line of the program. [nick]
  • 4. Macro Quoting
    Hi, I would appreciate if you help me solve a macro quoting issue. When simplified a bit, it essentially becomes the following. My question is: Why does the %put line work and the %if line does not? Is there any neat hack to make this work? Thank you. Cheers, Chang %macro test; %let s = %nrstr( %put NOTE: HI, THERE!; %if 1 %then %put NOTE: HI, HERE!; ); %unquote(&s.) %mend test; %test /* on log NOTE: HI, THERE! ERROR: The %IF statement is not valid in open code. */

libref for "work" data sets (one level name): WORK vs USER vs User= option

Postby dexter_road » Sat, 20 Nov 2004 01:08:19 GMT

I thought there was an easy way to determine the libref for "work"
data sets (i.e. those that can be accessed via a one level name), but
I could not find anything on SAS-L or in the on-line doc. Of course,
searching for WORK USER LIBREF can provide a number of non-related
hits (see additonal slightly off topic question at bottom).
 
I ended up writing the code included below to determine the libname
and memname for one level data set names.
(I need the two level name to extract info from the dictionary tables)

Is there an easier way to figure out the two level name?
=============================================================
%*** get lib & mem;
%macro libmem(in=,lib=_lib,mem=_mem);
  %if %scan(&in,2,.)>' ' %then %do;
     %*** two level names are easy;
     %let &lib=%scan(&in,1,.);
     %let &mem=%scan(&in,2,.);
  %end;
  %else %do;
     %*** one level names are more challenging;
     %*** if USER option is set, then use it;
     %let &lib=%sysfunc(getoption(USER));
     %if "&&&lib"="" %then %do;
        %*** if no USER option, check USER libref, if there use it;
        proc sql noprint;
         select distinct libname into :&lib from DICTIONARY.MEMBERS
          where libname='USER';
        quit;
        %*** if no USER libref defined then it must be WORK;
        %if "&&&lib"="" %then %let &lib=WORK;
     %end;
     %let &mem=∈
  %end;
  %*** upcase for use with dictionary tables; 
  %let &lib=%upcase(&&&lib);
  %let &mem=%upcase(&&&mem);
%put &lib is &&&lib  &mem is &&&mem;
%mend;

%libmem(in=sashelp.prdsale);
data prdsale; set sashelp.prdsale(obs=1); run;
%libmem(in=prdsale);

libname USER 'c:\DeleteThisFolder';
data prdsalU; set sashelp.prdsale(obs=1); run;
%libmem(in=prdsalU);

libname altUser 'c:\DeleteThisOneToo';
options user=altUser;
data prdsalO; set sashelp.prdsale(obs=1); run;
%libmem(in=prdsalO);
=============================================================

While looking at the on-line doc I found these:

Files in UNIX System Services can also be specified without a libref.
The following example specifies an HFS file using a relative path:
data 'saswork/two'; x=2; run;

I do not currently have access to a UNIX or OS/390 box, but was
wondering, do data sets accessed in this way show up in the dictionary
tables? And, if so, what do they look like? Just curious. No real need
to know.

Thanks for any assistance or advice,
Tammie

Re: libref for "work" data sets (one level name): WORK vs USER vs User= option

Postby Toby.Dunn » Sat, 20 Nov 2004 01:27:25 GMT

Dexter,

I have not been following this thread given I was busy yesterday with
some personel business.  But it seems to me that one could use &syslast
and some macro's to determine what you want.

HTH
Toby Dunn

-----Original Message-----
From: SAS(r) Discussion [mailto: XXXX@XXXXX.COM ] On Behalf Of
Dexter Road
Sent: Thursday, November 18, 2004 10:08 AM
To:  XXXX@XXXXX.COM 
Subject: libref for "work" data sets (one level name): WORK vs USER vs
User= option


I thought there was an easy way to determine the libref for "work" data
sets (i.e. those that can be accessed via a one level name), but I could
not find anything on SAS-L or in the on-line doc. Of course, searching
for WORK USER LIBREF can provide a number of non-related hits (see
additonal slightly off topic question at bottom).

I ended up writing the code included below to determine the libname and
memname for one level data set names. (I need the two level name to
extract info from the dictionary tables)

Is there an easier way to figure out the two level name?
=============================================================
%*** get lib & mem;
%macro libmem(in=,lib=_lib,mem=_mem);
  %if %scan(&in,2,.)>' ' %then %do;
     %*** two level names are easy;
     %let &lib=%scan(&in,1,.);
     %let &mem=%scan(&in,2,.);
  %end;
  %else %do;
     %*** one level names are more challenging;
     %*** if USER option is set, then use it;
     %let &lib=%sysfunc(getoption(USER));
     %if "&&&lib"="" %then %do;
        %*** if no USER option, check USER libref, if there use it;
        proc sql noprint;
         select distinct libname into :&lib from DICTIONARY.MEMBERS
          where libname='USER';
        quit;
        %*** if no USER libref defined then it must be WORK;
        %if "&&&lib"="" %then %let &lib=WORK;
     %end;
     %let &mem=∈
  %end;
  %*** upcase for use with dictionary tables;
  %let &lib=%upcase(&&&lib);
  %let &mem=%upcase(&&&mem);
%put &lib is &&&lib  &mem is &&&mem;
%mend;

%libmem(in=sashelp.prdsale);
data prdsale; set sashelp.prdsale(obs=1); run; %libmem(in=prdsale);

libname USER 'c:\DeleteThisFolder';
data prdsalU; set sashelp.prdsale(obs=1); run; %libmem(in=prdsalU);

libname altUser 'c:\DeleteThisOneToo';
options user=altUser;
data prdsalO; set sashelp.prdsale(obs=1); run; %libmem(in=prdsalO);
=============================================================

While looking at the on-line doc I found these:

Files in UNIX System Services can also be specified without a libref.
The following example specifies an HFS file using a relative path: data
'saswork/two'; x=2; run;

I do not currently have access to a UNIX or OS/390 box, but was
wondering, do data sets accessed in this way show up in the dictionary
tables? And, if so, what do they look like? Just curious. No real need
to know.

Thanks for any assistance or advice,
Tammie

Re: libref for "work" data sets (one level name): WORK vs USER vs User= option

Postby EdHeaton » Sat, 20 Nov 2004 02:32:22 GMT

Tammie,

That info is stored in SASHELP.VSLIB.

Data _null_ ;
    Set sasHelp.vsLib ;
    Where ( upCase(libName) eq "WORK" ) ;
    Call symPut( "workLoc" , trim(path) ) ;
Run ;
%put "&workLoc" ;


Ed

Edward Heaton, SAS Senior Systems Analyst,
Westat (An Employee-Owned Research Corporation),
1600 Research Boulevard, RW-3541, Rockville, MD 20850-3195
Voice: (301) 610-4818                  Fax: (301) 610-5128
mailto: XXXX@XXXXX.COM               http://www.**--****.com/ 


-----Original Message-----
From: SAS(r) Discussion [mailto: XXXX@XXXXX.COM ] On Behalf Of Dexter
Road
Sent: Thursday, November 18, 2004 11:08 AM
To:  XXXX@XXXXX.COM 
Subject: libref for "work" data sets (one level name): WORK vs USER vs User=
option


I thought there was an easy way to determine the libref for "work"
data sets (i.e. those that can be accessed via a one level name), but
I could not find anything on SAS-L or in the on-line doc. Of course,
searching for WORK USER LIBREF can provide a number of non-related
hits (see additonal slightly off topic question at bottom).

I ended up writing the code included below to determine the libname
and memname for one level data set names.
(I need the two level name to extract info from the dictionary tables)

Is there an easier way to figure out the two level name?
=============================================================
%*** get lib & mem;
%macro libmem(in=,lib=_lib,mem=_mem);
  %if %scan(&in,2,.)>' ' %then %do;
     %*** two level names are easy;
     %let &lib=%scan(&in,1,.);
     %let &mem=%scan(&in,2,.);
  %end;
  %else %do;
     %*** one level names are more challenging;
     %*** if USER option is set, then use it;
     %let &lib=%sysfunc(getoption(USER));
     %if "&&&lib"="" %then %do;
        %*** if no USER option, check USER libref, if there use it;
        proc sql noprint;
         select distinct libname into :&lib from DICTIONARY.MEMBERS
          where libname='USER';
        quit;
        %*** if no USER libref defined then it must be WORK;
        %if "&&&lib"="" %then %let &lib=WORK;
     %end;
     %let &mem=∈
  %end;
  %*** upcase for use with dictionary tables;
  %let &lib=%upcase(&&&lib);
  %let &mem=%upcase(&&&mem);
%put &lib is &&&lib  &mem is &&&mem;
%mend;

%libmem(in=sashelp.prdsale);
data prdsale; set sashelp.prdsale(obs=1); run;
%libmem(in=prdsale);

libname USER 'c:\DeleteThisFolder';
data prdsalU; set sashelp.prdsale(obs=1); run;
%libmem(in=prdsalU);

libname altUser 'c:\DeleteThisOneToo';
options user=altUser;
data prdsalO; set sashelp.prdsale(obs=1); run;
%libmem(in=prdsalO);
=============================================================

While looking at the on-line doc I found these:

Files in UNIX System Services can also be specified without a libref.
The following example specifies an HFS file using a relative path:
data 'saswork/two'; x=2; run;

I do not currently have access to a UNIX or OS/390 box, but was
wondering, do data sets accessed in this way show up in the dictionary
tables? And, if so, what do they look like? Just curious. No real need
to know.

Thanks for any assistance or advice,
Tammie

Re: libref for "work" data sets (one level name): WORK vs USER vs User= option

Postby Richard A. DeVenezia » Sat, 20 Nov 2004 02:39:14 GMT



Yes, assign macro var SYSLAST.

3    %let syslast = CLASS;
4    %put &syslast;
WORK.CLASS
5    %let syslast = CLASS;
6    %put &syslast;
WORK.CLASS
7
8    %let syslast = A.B;
9    %put &syslast;
A.B
10
11   %let syslast = .B;
12   %put &syslast;
_NULL_
13
14   %let syslast = A.;
15   %put &syslast;
WORK.A
16
17
18   %let syslast = A.B.C;
19   %put &syslast;
_NULL_


Dataset functions also help when the table exists.

%let ds = %sysfunc (open (<table>));
%let libname = %sysfunc (attrc (&ds,LIB));
%let memname = %sysfunc (attrc (&ds,MEM));
%let ds = %sysfunc(close(&ds));

-- 
Richard A. DeVenezia
 http://www.**--****.com/ 



Re: libref for "work" data sets (one level name): WORK vs USER vs User= option

Postby EdHeaton » Sat, 20 Nov 2004 02:51:37 GMT

kay, it seems that I didn't read the email carefully, so I answered a
question that was not asked. The question should be "How do I find the
libRef for one.level dataset names?"

Ed Heaton


-----Original Message-----
From: Ed Heaton
Sent: Thursday, November 18, 2004 12:32 PM
To: 'Dexter Road'; ' XXXX@XXXXX.COM '
Subject: RE: libref for "work" data sets (one level name): WORK vs USER vs
User= option


Tammie,

That info is stored in SASHELP.VSLIB.

Data _null_ ;
Set sasHelp.vsLib ;
Where ( upCase(libName) eq "WORK" ) ;
Call symPut( "workLoc" , trim(path) ) ;
Run ;
%put "&workLoc" ;


Ed

Edward Heaton, SAS Senior Systems Analyst,
Westat (An Employee-Owned Research Corporation),
1600 Research Boulevard, RW-3541, Rockville, MD 20850-3195
Voice: (301) 610-4818 Fax: (301) 610-5128
mailto: XXXX@XXXXX.COM http://www.Westat.com


-----Original Message-----
From: SAS(r) Discussion [mailto: XXXX@XXXXX.COM ] On Behalf Of Dexter
Road
Sent: Thursday, November 18, 2004 11:08 AM
To: XXXX@XXXXX.COM
Subject: libref for "work" data sets (one level name): WORK vs USER vs User=
option


I thought there was an easy way to determine the libref for "work"
data sets (i.e. those that can be accessed via a one level name), but
I could not find anything on SAS-L or in the on-line doc. Of course,
searching for WORK USER LIBREF can provide a number of non-related
hits (see additonal slightly off topic question at bottom).

I ended up writing the code included below to determine the libname
and memname for one level data set names.
(I need the two level name to extract info from the dictionary tables)

Is there an easier way to figure out the two level name?
=============================================================
%*** get lib & mem;
%macro libmem(in=,lib=_lib,mem=_mem);
%if %scan(&in,2,.)>' ' %then %do;
%*** two level names are easy;
%let &lib=%scan(&in,1,.);
%let &mem=%scan(&in,2,.);
%end;
%else %do;
%*** one level names are more challenging;
%*** if USER option is set, then use it;
%let &lib=%sysfunc(getoption(USER));
%if "&&&lib"="" %then %do;
%*** if no USER option, check USER libref, if there use it;
proc sql noprint;
select distinct libname into :&lib from DICTIONARY.MEMBERS
where libname='USER';
quit;
%*** if no USER libref defined then it must be WORK;
%if "&&&lib"="" %then %let &lib=WORK;
%end;
%let &mem=∈
%end;
%*** upcase for use with dictionary tables;
%let &lib=%upcase(&&&lib);
%let &mem=%upcase(&&&mem);
%put &lib is &&&lib &mem is &&&mem;
%mend;

%libmem(in=sashelp.prdsale);
data prdsale; set sashelp.prdsale(obs=1); run;
%libmem(in=prdsale);

libname USER 'c:\DeleteThisFolder';
data prdsalU; set sashelp.prdsale(obs=1); run;
%libmem(in=prdsalU);

libname altUser 'c:\DeleteThisOneToo';
options user=altUser;
data prdsalO; set sashelp.prdsale(obs=1); run;
%libmem(in=prdsalO);
=============================================================

While looking at the on-line doc I found these:

Files in UNIX System Services can also be specified without a libref.
The following example specifies an HFS file using a relative path:
data 'saswork/two'; x=2; run;

I do not currently have access to a UNIX or OS/390 box, but was
wondering, do data sets accessed in this way show up in the dictio

Re: libref for "work" data sets (one level name): WORK vs USER vs User= option

Postby pchoate » Sat, 20 Nov 2004 03:54:04 GMT

Hey Tammie -

With ODS and proc contents you directly get the "work" libref (active user=
or work=) and both physical name and filename.  The trick is to not specify
the higher level name.  If you try to put the results into the "work"
library SAS complains a bit, but it still works.

ods listing close;
ods output Directory=mysasfolder.work_directory;
proc contents data=_all_ ;
run;
ods output close;
ods listing;

About quoted name librefs - you can try them in widows, not just Unix and
z/OS:

data 'C:\test';
x=a;
run;

You'll see an automatically generated fileref of Wc000001, Wc000002, etc.,
for each new reference you make.

Online doc:  http://www.**--****.com/ 

Hth!

Paul Choate
DDS Data Extraction
(916) 654-2160

-----Original Message-----
From: SAS(r) Discussion [mailto: XXXX@XXXXX.COM ] On Behalf Of Dexter
Road
Sent: Thursday, November 18, 2004 11:08 AM
To:  XXXX@XXXXX.COM 
Subject: libref for "work" data sets (one level name): WORK vs USER vs User=
option


I thought there was an easy way to determine the libref for "work"
data sets (i.e. those that can be accessed via a one level name), but
I could not find anything on SAS-L or in the on-line doc. Of course,
searching for WORK USER LIBREF can provide a number of non-related
hits (see additonal slightly off topic question at bottom).

I ended up writing the code included below to determine the libname
and memname for one level data set names.
(I need the two level name to extract info from the dictionary tables)

Is there an easier way to figure out the two level name?
=============================================================
%*** get lib & mem;
%macro libmem(in=,lib=_lib,mem=_mem);
  %if %scan(&in,2,.)>' ' %then %do;
     %*** two level names are easy;
     %let &lib=%scan(&in,1,.);
     %let &mem=%scan(&in,2,.);
  %end;
  %else %do;
     %*** one level names are more challenging;
     %*** if USER option is set, then use it;
     %let &lib=%sysfunc(getoption(USER));
     %if "&&&lib"="" %then %do;
        %*** if no USER option, check USER libref, if there use it;
        proc sql noprint;
         select distinct libname into :&lib from DICTIONARY.MEMBERS
          where libname='USER';
        quit;
        %*** if no USER libref defined then it must be WORK;
        %if "&&&lib"="" %then %let &lib=WORK;
     %end;
     %let &mem=∈
  %end;
  %*** upcase for use with dictionary tables;
  %let &lib=%upcase(&&&lib);
  %let &mem=%upcase(&&&mem);
%put &lib is &&&lib  &mem is &&&mem;
%mend;

%libmem(in=sashelp.prdsale);
data prdsale; set sashelp.prdsale(obs=1); run;
%libmem(in=prdsale);

libname USER 'c:\DeleteThisFolder';
data prdsalU; set sashelp.prdsale(obs=1); run;
%libmem(in=prdsalU);

libname altUser 'c:\DeleteThisOneToo';
options user=altUser;
data prdsalO; set sashelp.prdsale(obs=1); run;
%libmem(in=prdsalO);
=============================================================

While looking at the on-line doc I found these:

Files in UNIX System Services can also be specified without a libref.
The following example specifies an HFS file using a relative path:
data 'saswork/two'; x=2; run;

I do not currently have access to a UNIX or OS/390 box, but was
wondering, do data sets accessed in this way show up in the dictionary
tables? And, if so, what do they look like? Just curious. No real need
to know.

Thanks for any assistance or advice,
Tammie

Re: libref for "work" data sets (one level name): WORK vs USER vs User= option

Postby donaldjhenderson » Sat, 20 Nov 2004 08:08:00 GMT

ammie,

I think what you want is the current value of the USER= option. If so, just
use:

%sysfunc(getoption(USER))

If the USER option has not been set, it will return a null value. If the
value has been set, it will give you that value as can be seen by the
following snippet from the SAS log:

5 %put *%sysfunc(getoption(USER))*;
**
6 options user=sashelp;
7 %put *%sysfunc(getoption(USER))*;
*sashelp*

If you want to make sure that it returns WORK if it has not been otherwise
specified, you could either:

- write a short little macro to do it and store the macro in an autocall
library, or
- make sure it has a value by including OPTIONS USER = WORK; in your
autoexec.sas file.

HTH,
-don h

----- Original Message -----
From: "Dexter Road" < XXXX@XXXXX.COM >
Newsgroups: bit.listserv.sas-l
To: < XXXX@XXXXX.COM >
Sent: Thursday, November 18, 2004 11:08 AM
Subject: libref for "work" data sets (one level name): WORK vs USER vs User=
option



Re: libref for "work" data sets (one level name): WORK vs USER vs User= option

Postby EdHeaton » Sat, 20 Nov 2004 21:36:03 GMT

on,

If you run,

LibName user "C:\temp\" ;
%let user = %sysFunc( getOption( user , keyword ) ) ;
%put &user ;
Data test ;
x = "test" ;
Run ;
Proc contents data=test ;
Run ;
%let user = %sysFunc( getOption( user , keyword ) ) ;
%put &user ;

your TEST dataset will be written to the USER library rather than the WORK
library even though the USER system option is not set. I think Tammie wants
to capture this, too.

Ed

Edward Heaton, SAS Senior Systems Analyst,
Westat (An Employee-Owned Research Corporation),
1600 Research Boulevard, RW-3541, Rockville, MD 20850-3195
Voice: (301) 610-4818 Fax: (301) 610-5128
mailto: XXXX@XXXXX.COM http://www.Westat.com


-----Original Message-----
From: SAS(r) Discussion [mailto: XXXX@XXXXX.COM ] On Behalf Of Don
Henderson
Sent: Thursday, November 18, 2004 6:08 PM
To: XXXX@XXXXX.COM
Subject: Re: libref for "work" data sets (one level name): WORK vs USER vs
User= option


Tammie,

I think what you want is the current value of the USER= option. If so, just
use:

%sysfunc(getoption(USER))

If the USER option has not been set, it will return a null value. If the
value has been set, it will give you that value as can be seen by the
following snippet from the SAS log:

5 %put *%sysfunc(getoption(USER))*;
**
6 options user=sashelp;
7 %put *%sysfunc(getoption(USER))*;
*sashelp*

If you want to make sure that it returns WORK if it has not been otherwise
specified, you could either:

- write a short little macro to do it and store the macro in an autocall
library, or
- make sure it has a value by including OPTIONS USER = WORK; in your
autoexec.sas file.

HTH,
-don h

----- Original Message -----
From: "Dexter Road" < XXXX@XXXXX.COM >
Newsgroups: bit.listserv.sas-l
To: < XXXX@XXXXX.COM >
Sent: Thursday, November 18, 2004 11:08 AM
Subject: libref for "work" data sets (one level name): WORK vs USER vs User=
option



Re: libref for "work" data sets (one level name): WORK vs USER vs User= option

Postby pchoate » Sun, 21 Nov 2004 02:03:29 GMT

lt;two cents>
In case there is a misunderstanding about how the SAS default directory
works: by default it is "work" unless there is a "user" libref, in which
case SAS defaults to the "user" library. Both of these may be overridden by
defining a user=libref at invocation or in an options statement. This
libref may be any valid SAS libref including "work" or "user".

Ed noted that the user option setting may be missing even though the work
library is not "work". My earlier post used proc contents and ODS to
capture the default directory directly from proc contents. hth
</two cents>


SAS Online Doc -

Techniques for Assigning the User Libref

You have three ways to assign the User libref:

Assign the User libref directly using the LIBNAME statement:

libname user '/users/myid/mydir';
Specify the USER= system option before you start the session. For example,
you can assign the User libref when you invoke SAS:

sas -user /users/myid/mydir
Specify the USER= system option after you start the session. First, assign a
libref to the permanent library. Then use the USER= system option in an
OPTIONS statement to equate that libref to User. For example, these
statements assign the libref User to the directory with libref Mine:

libname mine '/users/myid/mydir';
options user=mine;

Paul Choate
DDS Data Extraction
(916) 654-2160

-----Original Message-----
From: SAS(r) Discussion [mailto: XXXX@XXXXX.COM ] On Behalf Of Ed
Heaton
Sent: Friday, November 19, 2004 4:36 AM
To: XXXX@XXXXX.COM
Subject: Re: libref for "work" data sets (one level name): WORK vs USER vs
User= option

Don,

If you run,

LibName user "C:\temp\" ;
%let user = %sysFunc( getOption( user , keyword ) ) ;
%put &user ;
Data test ;
x = "test" ;
Run ;
Proc contents data=test ;
Run ;
%let user = %sysFunc( getOption( user , keyword ) ) ;
%put &user ;

your TEST dataset will be written to the USER library rather than the WORK
library even though the USER system option is not set. I think Tammie wants
to capture this, too.

Ed

Edward Heaton, SAS Senior Systems Analyst,
Westat (An Employee-Owned Research Corporation),
1600 Research Boulevard, RW-3541, Rockville, MD 20850-3195
Voice: (301) 610-4818 Fax: (301) 610-5128
mailto: XXXX@XXXXX.COM http://www.Westat.com


-----Original Message-----
From: SAS(r) Discussion [mailto: XXXX@XXXXX.COM ] On Behalf Of Don
Henderson
Sent: Thursday, November 18, 2004 6:08 PM
To: XXXX@XXXXX.COM
Subject: Re: libref for "work" data sets (one level name): WORK vs USER vs
User= option


Tammie,

I think what you want is the current value of the USER= option. If so, just
use:

%sysfunc(getoption(USER))

If the USER option has not been set, it will return a null value. If the
value has been set, it will give you that value as can be seen by the
following snippet from the SAS log:

5 %put *%sysfunc(getoption(USER))*;
**
6 options user=sashelp;
7 %put *%sysfunc(getoption(USER))*;
*sashelp*

If you want to make sure that it returns WORK if it has not been otherwise
specified, you could either:

- write a short little macro to do it and store the macro in an autocall
library, or
- make sure it has a value by including OPTIONS USER = WORK; in your
autoexec.sas file.

HTH,
-don h

----- Original Message -----
From: "Dext

Similar Threads:

1.Macro vs user

2.sas format vs user format?

hello.

is there any way that my program can determine if a variable format is
sas-supplied format vs an user-defined format?

many thanks for the help.
christine peloquin

3.What is SAS user group working committee?

Hi to all,

Can I check with all the SAS users about this thing called SAS user group
working committee?

What is the function of this committee?

I was chatting with one of the local SAS guy and he mentioned that there are
3 groups of people. There is the executive chairman, executive committee and
the working committee.

Anyone care to share with me the role of this working committee?

Certified Advanced Programmer for SAS V9
Certified Basic Programmer for SAS V9
DataShaping Certified SAS Professional

4.proc format: work vs permanent library

hello.

i am using proc format to find the various format values for a list of
formats.  some of these formats i am looking for are stored in the temporary
work format library and others are stored in a permanent format library.

i have created a libname with LIBRARY and my permanent format library.

if i run proc format without library= (as follows), it can find the
temporary/work formats but not the permanent formats.

proc format cntlout=try (keep= start label);
 select EFFUSION;
quit;
run;

if i run proc format with library=permanent format library (as follows), it
can find the permanent formats but not the temporary/work formats.

proc format cntlout=try (keep= start label) library=library;
 select EFFUSION;
quit;
run;

is there any way to get to PROC FORMAT to check both the work and permanent
format libraries?

many thanks for the help.
christine

5.User-Data level locking

Hi,



I want to enforce data/user level security on my datasets and cubes. For
example if my dataset has the data:



Data xyz;

Input name $ deptno;

Datalines;

aaa 10

bbb 20

ccc 30

ddd 40

eee 50

;

Run;



I have a user named ABC and I want to prevent ABC from seeing records in the
datasets which have deptno value more than 30. Could anyone guide me as how
I could do this? Thanks in advance.



Regards,

Mihir Vora

6. User defined formats using a data set.

7. Administration : User cannot create tables or data sets

8. How to check temporary work data sets in mvs



Return to sas

 

Who is online

Users browsing this forum: No registered users and 52 guest