Returns the value of a numeric attribute for the specified SAS
data set
ATTRN(data-set-id,attr-name)
|
- data-set-id
- specifies the data set identifier that the
OPEN function returns.
- attr-name
- is a numeric attribute, as listed in the
section below. If the value of attr-name is
invalid, a missing value is returned.
Valid numeric values used with attr-name
are:
ALTERPW
- specifies whether a password is required
to alter the data set.
1 |
the data set is alter protected. |
0 |
the data set is not alter protected. |
ANOBS
- specifies whether the engine knows the number
of observations.
1 |
the engine knows the number of observations. |
0 |
the engine does not know the number
of observations. |
ANY
- specifies whether the data set has observations
or variables.
-1 |
the data set has no observations
or variables. |
0 |
the data set has no observations. |
1 |
the data set has observations and
variables. |
ARAND
- specifies whether the engine supports random
access.
1 |
the engine supports random access. |
0 |
the engine does not support random
access. |
ARWU
- specifies whether the engine can manipulate
files.
1 |
the engine is not read-only. It can
create or update SAS files. |
0 |
the engine is read-only. |
CRDTE
- specifies the date that the data set was
created. The value returned is the internal SAS datetime value for the creation
date.
Tip: |
Use the DATETIME. format
to display this value. |
ICONST
- returns information about the existenece
of integrity constraints for a SAS data set.
0 |
no integrity constraints. |
1 |
one or more general integrity constraints. |
2 |
one or more referential integrity
constraints. |
3 |
both one or more general integrity
constraints and one or more referential integrity constraints |
INDEX
- specifies whether the data set supports
indexing.
1 |
indexing is supported. |
0 |
indexing is not supported. |
ISINDEX
- specifies whether the data set is indexed.
1 |
at least one index exists for the
data set. |
0 |
the data set is not indexed. |
ISSUBSET
- specifies whether the data set is a subset.
1 |
at least one WHERE clause is active. |
0 |
no WHERE clause is active. |
LRECL
- specifies the logical record length.
LRID
- specifies the length of the record ID.
MAXGEN
- specifies the maximum number of generations.
MAXRC
- specifies whether an application checks return codes.
1 |
an application checks return codes. |
0 |
an application does not check return codes. |
MODTE
- specifies the last date and time the data
set was modified. The value returned is the internal SAS datetime value.
Tip: |
Use the DATETIME. format
to display this value. |
NDEL
- specifies the number of observations in
the data set that are marked for deletion.
NEXTGEN
- specifies the next generation number to
generate.
NLOBS
- specifies the number of logical observations
(those not marked for deletion). An active WHERE clause does not affect this
number.
-1 |
the number of observations is not
available. |
NLOBSF
- specifies the number of logical observations
(those not marked for deletion) by forcing a read of each observation and
taking the FIRSTOBS and OBS system options, and the WHERE clauses into account.
Tip: |
Passing NLOBSF to ATTRN
requires the engine to read every observation from the data set that matches
the WHERE clause. Based on the file type and size, this can be a time-consuming
process. |
NOBS
- specifies the number of physical observations
(including those that are marked for deletion). An active WHERE clause does
not affect this number.
-1 |
the number of observations is not
available. |
NVARS
- specifies the number of variables in the
data set.
PW
- specifies whether a password is required
to access the data set.
1 |
the data set is protected. |
0 |
the data set is not protected. |
RADIX
- specifies whether access by observation
number (radix addressability) is allowed.
1 |
access by observation number is allowed. |
0 |
access by observation number is not
allowed. |
Note: A data set on a tape engine
is index addressable although it cannot be accessed by observation number.
READPW
- specifies whether a password is required
to read the data set.
1 |
the data set is read protected. |
0 |
the data set is not read protected. |
TAPE
- specifies the data set tape file status.
1 |
the data set is a sequential file. |
0 |
the data set is not a sequential
file. |
WHSTMT
- specifies the active WHERE clauses.
0 |
no WHERE clause is active. |
1 |
a permanent WHERE clause is active. |
2 |
a temporary WHERE clause is active. |
3 |
both permanent and temporary WHERE
clauses are active. |
WRITEPW
- specifies whether a password is required
to write to the data set.
1 |
the data set is write protected. |
0 |
the data set is not write protected. |
- This example checks whether a WHERE clause is
currently active for a data set.
%let iswhere=%sysfunc(attrn(&dsid,whstmt));
%if &iswhere %then
%put A WHERE clause is currently active.;
- This example checks whether a data set is protected
with a password.
data _null_;
dsid=open("mydata");
pw=attrn(dsid,"pw");
if pw then put "data set is protected";
run;
Copyright 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.