Home
        Using External Files
         Contents
1.          put    Here is the latest report for   dept           if dept    marketing   then  put    ATTN  Sales Representatives     else  put    For Your Information       put     EM SEND          Send the message       put   EM NEWMSG          Clear the message attributes       return     Using External Files A Example  Sending E Mail Using SCL Code 183    lastobs  put   EM ABORT            Abort the message before the        Run statement causes it to         be sent again         datalines     Susan  Jim  Rita  Herb      run     marketing  marketing  development  development    The resulting email message and its attachments are dependent on the department  to which the recipient belongs     Note You must use the  EM_NEWMSG  directive to clear the message attributes  between recipients  The  EM_ ABORT  directive prevents the message from being  automatically sent at the end of the DATA step  a    Example  Sending E Mail Using SCL Code    The following example is the SCL code behind a frame entry designed for email  The  frame entry includes several text entry fields that let the user enter information     mailto  copyto  subject  linel    the user ID to send mail to   the user ID to copy  CC  the mail to  the subject of the mail message   the text of the mail message    The frame entry also contains a push button named SEND that causes this SCL code   marked by the send  label  to execute     send           re              if    set up a fileref       filename    mailit    
2.    userid       email         if the fileref was successfully set up     open the file to write to       re   0 then do   fid   fopen    mailit       o       if fid  gt 0 then do        fput statements are used to         implement writing the mail         and the components such as         subject  who to mail to  etc         fputrel   fput fid linel    re   fwrite fid      184 Example  Sending E Mail Using SCL Code A Chapter 7    fputre2   fput fid     EM TO     mailto    re   fwrite fid    fputre3   fput fid     EM CC     copyto      re   fwrite fid      fputrc4   fput fid     EM SUBJECT     subject    re   fwrite fid      closerc   fclose fid    end   end   return     cancel   call execcmd    end       return     
3.   The number of  characters in the quoted string must not exceed the maximum filename length that  OpenVMS allows  255 characters     Here are some examples of valid file specifications     infile     node2  device  dirl subdirl food dat      file     mydir prices dat        To access a particular version of a file  include the version number in the quoted file  specification  If you omit the version number  then SAS uses the most recent version  when reading  and it creates a new version when writing  To append records to the end  of an existing file  use the MOD option in the FILE statement  type APPEND in  windowing environment filename fields  or use the FAPPEND function  For example   the following FILE statement appends data lines to the file PRICES DAT 1     file     prices dat 1    mod     Using Wildcard Characters in External File Specifications    You can use the following wildcard characters inside a SAS job wherever a  quoted string file specification is allowed  except that you cannot use them in a FILE  statement        asterisk   matches all files      percent sign   matches any character          ellipsis   searches all subdirectories   The following are some examples of valid uses of wildcard characters        filename myfile    data              Sinclude    sas              infile    test  dat                    infile   data      test_data           Using External Files A Using Aggregate Syntax to Identify External Files 169    The special characters    pou
4.   and a copy of the log   including the first column of data  is stored in the file OUT LOG    For more information about command procedure files  see    Invoking SAS from a  Command Procedure File    on page 23     Command Procedures    on page 13  and  OpenVMS User s Manual        Displaying Information about External Files    As in other operating environments  you can use the following form of the  FILENAME statement under OpenVMS to list the attributes of all the external files  that are assigned for your current SAS process     FILENAME ALL_LIST     You can use the FINFO function or the SAS Explorer window to see information  about your currently assigned external files  For details  see    FINFO    on page 290    In both cases  OpenVMS logical names that you have assigned to external files are  also listed  but only after you have used them as filerefs in your current SAS process     Using External Files  A DCL Commands for Tape Access 173       Accessing External Files on Tape    An external file can reside on either a labeled tape or an unlabeled tape  This section  discusses the DCL commands that you use when you access external files that are  stored on tape  It then describes how to write to and read from external files on labeled  and unlabeled tapes     Note You cannot use wildcards in tape specifications  nor can you use concatenated  tape specifications       DCL Commands for Tape Access    Use the following DCL commands to request and then release the tape dr
5.  Commands and Statements    Reference File Type Window   FILE command SAS Program Editor  FILE command  LOG Log   FILE command LIS Output  INCLUDE command  SAS Program Editor  FILE statement  DAT Program Editor   INCLUDE statement SAS Program Editor  INFILE statement  DAT Program Editor       Reading and Writing SAS System Print Files    The following sections describe the default print file format under OpenVMS and  how print files can be created using command files     Default Print File Format    FORTRAN is the default file format for SAS print files  You can change the default  for the entire session or for specific files by using the CC  system option  This option  can be used in the FILENAME statement  in the FILENAME function  or as a system  option     Note TheFILE command generates a nonprint file  whereas the PRINT command  generates a print file  a    To specify the carriage control format  use either the CC  external 1 0 statement  option  see    Host Specific External I O Statement Options    on page 363 in the  FILENAME statement  or the CC  system option  see    CC     on page 403   You can also  use the FILECC system option to control how SAS treats the data in column 1 of a  print file  see    FILECC    on page 411     When you write to a print file with FORTRAN carriage control  SAS shifts all column  specifications in the PUT statement one column to the right to accommodate the  carriage control characters in column 1    A nonprint file that is written by t
6.  DCL DEFINE  or ASSIGN   command    an OpenVMS pathname enclosed in single or double quotation marks  aggregate syntax  a single filename without quotation marks  a file in the default directory                                          Order of Precedence for External File Specifications    It is possible  though generally not advisable  to use the same text string as a  filename  a fileref  and an OpenVMS logical name  If an external file specification is a  valid SAS name and is not enclosed in quotation marks  then SAS uses the following  order of precedence to interpret the text string and locate the external file     1 If you have defined the text string as a SAS fileref  then SAS uses the file that the  fileref refers to    2 If the text string is not a fileref  then SAS looks to see whether you have defined it  as an OpenVMS logical name  If so  it uses the file that the logical name refers to     3 If the text string is neither a fileref nor an OpenVMS logical name  then SAS looks  for a file by that name in your default directory     Using External Files  A Assigning OpenVMS Logical Names to External Files 167    Assigning Filerefs    Use the FILENAME statement  the FILENAME function  or the SAS Explorer  window to assign a fileref to an external file  For details  see the following     FILENAME statement     FILENAME    on page 359   FILENAME function     FILENAME    on page 285   SAS Explorer window     Using SAS with the SAS Explorer Window    on page 21     Assig
7.  Request 69 from user SMITH  Mount relative volume  MYTA02 on  2SMUA2     the operator performs the following steps   1 Mounts an initialized tape on the drive   2 Issues the following command     REPLY INITIALIZE TAPE 69  which sends the following message to user SMITH   Mount request 69 satisfied by operator    As this example illustrates  some coordination is required between the user and the  operator when multivolume tapes are used  Contact your system manager for more  information about this topic     176 Writing to a Labeled Tape A Chapter 7    Writing to a Labeled Tape    The following example illustrates a SAS program  submitted in an interactive line  mode session  that writes to a labeled tape for the first time       ALLOCATE TAPEDEVICE    INITIALIZE TAPEDEVICE LABEL1    MOUNT TAPEDEVICE LABEL1    DEFINE OUTTAPE TAPEDEVICE EXPGIFTS DAT    SAS    notes and messages to SAS log    1  data null    2  input gift   price   3  file outtape   4  if price gt 100 then  5  put gift price   6  datalines   7 gt  watch 250 00  8 gt  clown 35 31      more data lines  15 gt       notes and messages to SAS log    16  x    dismount tapedevice      17  x  deallocate tapedevice      18     This program writes the file EXPGIFTS DAT to the tape that is identified by the  label LABEL1   The tape is referenced by the fileref OUTTAPE in the FILE statement    After the write operation  the tape remains positioned at the end of the first file  ready  to write another file  When you issue th
8.  following INFILE statement reads the data file FOOD DAT from the default  directory  FOOD has not been defined as a SAS fileref nor as an OpenVMS logical  name      infile food     When SAS encounters this statement  it searches the default directory for a file named  FOOD DAT  Records are read from FOOD DAT according to subsequent INPUT  statement specifications    The following FILE statement writes data lines to the file PRICES DAT in the  default directory  PRICES has not been defined as a SAS fileref nor as an OpenVMS  logical name      file prices     When SAS encounters this statement  it writes to a file named PRICES DAT in the  default directory  Data lines are written to PRICES DAT according to subsequent PUT  statement specifications     Using External Files A Default Print File Format 171    Default File Types    By default  the SAS System uses the OpenVMS file type  DAT with both the INFILE  and FILE statements  Therefore  if you want to read from or write to an existing file in  the default directory when specifying only the filename  the file type must be  DAT   otherwise  SAS cannot locate the file  and it issues an error message    The default file types are different if you are using windowing environment  commands  Table 7 1 on page 171 lists the default file types for SAS statements and  commands  Be sure to include the file type in a quoted file specification unless you are  sure that the SAS System default is correct     Table 7 1 Default File Types for
9.  n qualifier       ALLOCATE TAPEDEVICE    MOUNT FOREIGN TAPEDEVICE    DEFINE MYTAPE TAPEDEVICE    SAS   notes and messages to SAS log    1  x    set magtape mytape skip files 1      2  data prices     3  infile mytape recfm d lrecl 80   4  input name   x y z    5  prod x y    6  if prod lt z then output    7  run     notes and messages to SAS log    8  x    dismount mytape      9  x     deallocate mytape      10     Using External Files A Sending Electronic Mail from within the SAS System 179    To read from an unlabeled tape from the DATA step  you must indicate the tape  format by using RECFM D  If you do not use RECFM D for this type of access  the  results are unpredictable    You must also use the LRECL  option to indicate the length of each record  If the  records that you are accessing are variable length records  then use a value for the  LRECL option that is the maximum record length  The minimum LRECL  value is 14   This minimum value is the only restriction on the LRECL  value for unlabeled tapes        Accessing Remote External Files    The SAS System supports access to external files across DECnet  You can create or  read external files on any OpenVMS machine to which you have access in your DE Cnet  network    An external file that resides on another OpenVMS node can be specified in any  statement that contains a quoted file specification  You can also define an OpenVMS  logical name to point to a file on another node and then use the OpenVMS logical name  in yo
10.  only one  directive in each PUT statement  each PUT statement can contain only the text  associated with the directive it specifies    The directives that change the attributes of your message are the following     IEM TO  addresses    replaces the current primary recipient addresses with addresses  In the PUT  statement  specify addresses without single quotation marks     IEM CC  addresses    replaces the current copied recipient addresses with addresses  In the PUT  statement  specify addresses without single quotation marks     IEM SUBJ ECT  subject  replaces the current subject of the message with subject    The directives that perform actions are the following    IEM SEND   sends the message with the current attributes  By default  the message is  automatically sent at the end of the DATA step  If you use this directive  the SAS    System sends the message when it encounters the directive  and sends it again at  the end of the DATA step     IEM ABORT   aborts the current message  You can use this directive to stop the SAS System  from automatically sending the message at the end of the DATA step    IEM NEWMSG     clears all attributes of the current message  including TO  CC  SUBJ ECT  and the  message body     Example  Sending E Mail from the DATA Step    Suppose that you want to tell your co worker J im  whose user ID is J Brown  about  some changes you made to your CONFIG SAS file  If your email program handles alias  names  you could send the message by submitting 
11. 165    CHAPTER    Using External Files       Introduction 165  Identifying External Files totheSAS Systen 166  Order of Precedence for External FileSpecifications 166  Assigning Filerefs 167  Assigning OpenVMS Logical Names to External Files 167  Using OpenVMS Pathnames to Identify External Files 168  Using Aggregate Syntax to Identify External Files 169  Identifying an External File That Is in Your Default Directory 170  Reading and Writing SAS System Print Files 171  Default Print FileFormat 171  Print Files Created by Command Files 172  Displaying Information about External Files 172  Accessing External Files on Tape 173  DCL Commands for Tape Access 173  Writing toa Labded Tape 176  Writing to an Unlabeled Tape 176  Reading from a Labded Tape 177  Reading from an Unlabeled Tape 178  Accessing Remote External Files 179  Sending Electronic Mail from within the SAS System 179  Using the DATA Step or SCL to Send Electronic Mail 180  Syntax of the FILENAME Statement for Electronic Mail 180  Example  Sending E Mail fromthe DATA Step 181  Example  Sending E Mail Using SCL Code 183       Introduction    Note This section discusses methods of accessing external files on disk  For  additional information about accessing external files on tape see    Accessing External  Files on Tape    on page 173  a    External files are files whose format is determined by the operating environment  rather than by the SAS System  These files are not managed by the SAS System   External files inclu
12. X statement to issue the tape access commands  specify the  commands in the following order     INITIALIZE  ALLOCATE  MOUNT    This order differs from the order that you use when you issue the same commands  from the DCL prompt    If you do not use this order  and you allocate the tape before you initialize it  a  message warns you that the device has already been allocated to another user when  you try to initialize the tape    When you issue the tape access commands from the DCL prompt  specify them in the  following order     ALLOCATE  INITIALIZE  MOUNT    Using Multivolume Tapes    If you plan to write to several tapes in a set  you must initialize all the tapes before  you start your job  Then use the  INITIALIZE CONTINUATION qualifier in the first  MOUNT command  as in the following example       ALLOCATE TAPEDEVICE    INITIALIZE TAPEDEVICE TAPELIB    MOUNT INITIALIZE CONTINUATION TAPEDEVICE TAPELIB    SAS    more SAS statements      The  INITIALIZE CONTINUATION qualifier guarantees that the appropriate  number is added to the label as the OpenVMS system mounts the subsequent volumes   For example  the following MOUNT command first creates a tape labeled MYTAPE   Subsequent tapes are labeled MYTA02  MYTA03  MYTAO4  and so on       MOUNT INITIALIZE CONTINUATION  2SMUA2  MYTAPE    When you issue a request to mount the next relative volume  the operator issues the  reply with the  INITIALIZE_ TAPE  request number option  For example  if you issue  the following request    
13. are available for use during the current SAS process  A    Examples  Using Logical Names to Access External Files    Suppose you want to read a data file named  YOURDIR JEDUC DAT  and you decide  to use an OpenVMS logical name to access the file  You can issue the DCL DEFINE  command before you invoke the SAS System  The following is an example       DEFINE INED  YOURDIR EDUC DAT    Alternatively  you can use the SAS X statement to issue a DCL DEFINE command in  your SAS program     x    define ined  yourdir Jeduc dat        Either of these methods properly associates the OpenVMS logical name INED with  the file  YOURDIR JEDUC DAT  You can then use INED as the file specification in the  INFILE statement     168 Using OpenVMS Pathnames to Identify External Files A Chapter 7    infile ined     You can use the same methods to write to an external file  For example  use an X  statement to issue a DCL DEFINE command as follows     x    define outfile  yourdir scores dat        Then use the OpenVMS logical name OUTFILE as the file specification in the  following FILE statement     file outfile     Using OpenVMS Pathnames to Identify External Files    If you use an OpenVMS pathname as an external file specification  you must enclose  the file specification in single or double quotation marks  The file specification must be  a valid OpenVMS pathname to the external file that you want to access  therefore  the  level of specification depends on your location in the directory structure
14. d SCORESO1  you can  use the following INFILE statement     infile mytxtlib scores0l1      Note The filetype rules for OpenVMS text library syntax differ from the rules for  directory based aggregate syntax  When referring to a member of an OpenVMS text  library  do not specify a file type  If you do  the file type is ignored  For example  in the  following statements the fileref TEST refers to an OpenVMS text library     filename test    mylib tlb      data null     file test one dat     put    first      run     The file type  DAT is ignored  and the FILE statement writes member ONE to the  text library  not to ONE DAT  Wildcard characters are not allowed in filenames when  you are using OpenVMS text library syntax       Identifying an External File That Is in Your Default Directory    As explained in    Order of Precedence for External File Specifications    on page 166  if  an external file specification is a valid SAS name and is neither quoted nor a previously  defined fileref or OpenVMS logical name  then SAS opens a file by that name in your  default directory  Therefore  you cannot use the special characters  or  in the external  file specification  because these characters are not valid in OpenVMS filenames    The specification must be a filename only  do not include the file type  The SAS  System uses a default file type depending on whether you are reading or writing data  lines or reading SAS statements  as indicated in    Default File Types    on page 171    The
15. de raw data files  files that contain SAS programming statements   and procedure output files     166 Identifying External Files to the SAS System A Chapter 7    The following SAS statements and functions are used to access external files on disk  or tape     FILENAME statement and FILENAME function    associate a fileref with an external file that you want to use for input or output    For details about the FILENAME statement  see    FILENAME    on page 359  For  details about the FILENAME function  see    FILENAME    on page 285      INFILE statement    opens an external file for reading data lines   For details  see    INFILE    on page  378      FILE statement  opens an external file for writing data lines   For details  see    FILE    on page 357     INCLUDE statement    opens an external file for reading SAS statements   For details  see    Yl NCLUDE     on page 377      You also specify external files in various windowing environment fields  for example   as a file destination in the Output Manager window or as a source input in an  INCLUDE command         Identifying External Files to the SAS System    To access an external file  you must tell the SAS System how to find the file   Depending on the context  you can use any of the following specifications to identify an  external file to the SAS System     a fileref that was assigned with the FILENAME statement  the FILENAME  function  or with the SAS Explorer window    an OpenVMS logical name that was assigned with the
16. e DISMOUNT and DEALLOCATE commands   the tape is rewound and physically unloaded  and the drive and tape are released from  your SAS session    The default block size for an ANSI labeled tape is 2 048 bytes     Writing to an Unlabeled Tape    When you are writing to an unlabeled tape  you must use the  FOREIGN qualifier in  the MOUNT command       MOUNT FOREIGN TAPEDEVICE    You must also use special values for the RECF M   and LRECL options in the FILE  statement  as shown in the following example       ALLOCATE TAPEDEVICE    INITIALIZE TAPEDEVICE    MOUNT FOREIGN TAPEDEVICE    DEFINE OUTTAPE TAPEDEVICE    SAS    notes and messages to SAS log    1  data null    2  input gift   price   3  file outtape recfm d lrecl 80   4  if price gt 100 then    Using External Files A Reading from a Labeled Tape 177    5  put gift price    6  datalines    7 gt  watch 250 00   8 gt  clown 35 31       more data lines     15 gt       notes and messages to SAS log     16  x    dismount outtape       17  x    deallocate outtape       18     The default block size for an unlabeled tape is 512 bytes  If you want to write a  record that is longer than the default block size  you must increase the block size by  using the  BLOCKSIZE qualifier in the MOUNT command  For example  the following  command increases the block size to 8000 bytes for an unlabeled tape       MOUNT FOREIGN BLOCKSIZE 8000 TAPEDEVICE LABEL1    If you attempt to write a record that is longer than the block size  you receive the  f
17. he SAS System contains neither carriage control  characters nor titles  Whether you create a print or nonprint file  the SAS System    172    Print Files Created by Command Files A Chapter 7    provides default values for some characteristics of the file  these defaults are adequate  in most cases  Table 7 2 on page 172 lists the defaults for print and nonprint files     Table 7 2 Default File Attributes for SAS Print and Nonprint Files    Print File Print File  Attribute  Batch   Interactive  Nonprint File  Maximum record size 132 80 32 767  RECFM  V V V  CC  FORTRAN FORTRAN CR    Print Files Created by Command Files    When you run a SAS program from a command procedure file with the DCL command  qualifier OUT  and also specify the SAS system option ALTLOG SY S OUTPUT  you  must also use the CC  system option to correctly set the print file format    The default print file format is FORTRAN  However  the DCL command qualifier  OUT creates a VFC format file  Unless you also specify either CC  ORTRAN or  CC CR in your SAS command  your output or listing will lack the first column of data    The following is an example that generates the correct results        Your command procedure file should look something like this                SAS ALTLOG SYSSOUTPUT CC CR MYPROG SAS       If your command file is named MY COM  then you can run your SAS program by  entering the following commana                 MY COM OUT OUT LOG    These commands send the log to the SYS OUTPUT destination
18. ing                             180 Using the DATA Step or SCL to Send Electronic Mail A Chapter 7    Using the DATA Step or SCL to Send Electronic Mail   In general  a DATA step or SCL code that sends electronic mail has the following  components   a FILENAME statement with the EMAIL device type keyword    options specified on the FILENAME or FILE statements indicating the email  recipients  subject  and any attached files   PUT statements that contain the body of the message   PUT statements that contain special email directives  of the form  EM_directive      that can override the email attributes  TO  CC  SUBJ ECT  or perform actions   such as SEND  ABORT  and NEWMSG                                    Syntax of the FILENAME Statement for Electronic Mail    To send electronic mail from a DATA step or SCL  issue a FILENAME statement  using the following syntax     FILENAME filee EMAIL    address     lt email options gt   where  fileref  is a valid fileref      address       is the destination email address of the user to whom you want to send email  You  must specify an address here  but you can override its value with the TO email  option     email options  can be any of the following   TO to address    specifies the primary recipients of the electronic mail  If an address contains  more than one word  you must enclose it in single quotation marks  To  specify more than one address  you must enclose the group of addresses in  parentheses and enclose each address in single 
19. ive and  volume for your SAS job or session  You can issue these commands either before you  invoke the SAS System or in the X statement after you invoke the SAS System     ALLOCATE devicenamed ogical name gt     requests exclusive use of the tape drive on which the tape volume is physically  mounted  and it optionally establishes logical name  This command is not  required  however  you do not have exclusive use of your device until you issue the  ALLOCATE command     INITIALIZE  lt  qualifier gt  devicename volumelabd    initializes the tape and specifies a label to assign to the tape  Use the INITIALIZE  command only when you are writing to a tape for the first time  For more  information about initializing tapes  refer to Guide to VMS Files and Devices     MOUNT  lt  qualifie gt devicename  lt volumelabd  gt     requests that the tape be mounted on the tape drive identified by devicename If  the tape is treated as ANSI labeled  then you must include the volume label of the  mounted tape  The syntax of the MOUNT command for a labeled tape is      MOUNT devicename volumelabd  where volume labd has a maximum length of six characters     If the tape is unlabeled  then you must include the  FOREIGN qualifier and the  device name  The syntax of the MOUNT command for an unlabeled tape is      MOUNT FOREIGN devicename  You do not need to use volumelaba when requesting an unlabeled tape     If you are requesting an unlabeled tape  you can issue the following form of the  MOUNT com
20. leases the tape drive from your job or session     In each of these commands  device name can be either the name of a tape drive at  your site  for example  MUAO   or a logical pointing to the tape drive    After you issue commands to request the device and tape volume  use the DCL  DEFINE command  the SAS FILENAME statement  or the FILENAME function to  associate an OpenVMS logical name or SAS fileref with the external file on tape  For a  labeled tape  specify a file in one of the following two forms     FILENAME filee tapedevice filenamefiletype     DEFINE logical name tapedevice filenamefilatype                For an unlabeled tape  specify a file in one of the following two forms   FILENAME filee tapedevice        DEFINE logical name tapedevice                      You can also use the SAS X statement to issue the DEFINE command   The OpenVMS logical name or SAS fileref that is assigned to the tape device is then  used as the file specification in the INFILE or FILE statement     Note In these examples  it is assumed that the OpenVMS logical name definition  for tapedevice includes a colon in the device specification  such as the following       DEFINE TAPEDEVICE MUAO     If your OpenVMS logical name definition does not include a colon  then you must  specify the colon when you use TAPEDEVICE  as in the following     filename fileref  tapedevice         A    Using External Files  A DCL Commands for Tape Access 175    Order of Tape Access Commands    When you use the SAS 
21. mand  which tells the computer operator which tape to mount       MOUNT ASSIST COMMENT      instructions    devicename    where instructions tell the computer operator which tape to mount  and  devicename identifies the tape drive     If you are writing or reading records of a different length than the default block  size  you can use the  BLOCKSIZE   qualifier to specify the block size  For  example  in the following form of the MOUNT command  xxxx specifies the  appropriate block size for an unlabeled tape     174 DCL Commands for Tape Access A Chapter 7      MOUNT FOREIGN BLOCKSIZE    Xxxx device name    After you issue the MOUNT command for a labeled or unlabeled tape  your  keyboard locks until the MOUNT command executes  that is  until the operator  mounts the tape   This command is required     SET MAGTAPE   qualifier  gt  devicename  assigns special characteristics to a tape device  Qualifiers include the following    DENSITY     sets the density of 800  1 600  or 6 250 bpi  bytes per inch  for foreign tape  operations      REWIND  rewinds the tape    SKIP FILES  n  specifies the number of files  n  to skip over on an unlabeled tape   DISMOUNT  lt NOUNLOAD gt  device name    dismounts a labeled or unlabeled tape  When you issue the DISMOUNT  command  the tape is physically unloaded by default  In order to mount and use  the tape again  operator intervention is required  Use the   NOUNLOAD qualifier  to prevent the default unload operation     DEALLOCATE devicename  re
22. ment appends a file type of  DAT to the SCORES02  filename   For more information about default file types  see    Default File Types    on  page 171   Therefore  if you specify the following INFILE statement  SAS looks for the  file SCORESO2 DAT DAT and the statement fails     infile myfile scores02 dat      If you want to specify a different file type  then enclose the file specification in  quotation marks  as in the following example     infile myfile    scores02 new          Identifying OpenVMS Text Libraries    Aggregate syntax is also used to identify OpenVMS text libraries  An OpenVMS text  library has a default file type of  TLB and can store frequently used text files  For  example  if you have several related files of data  you may want to store them in one  OpenVMS text library  OpenVMS text libraries are also commonly used as SAS autocall  libraries  which store SAS macros  For more information  see    Autocall Libraries    on  page 464    To access a file in an OpenVMS text library  first assign a fileref or OpenVMS logical  name to the text library  Then  in an INFILE or FILE statement  specify the fileref or  logical name  followed by the filename in parentheses     170    Identifying an External File That Is in Your Default Directory A Chapter 7    For example  you can use the following FILENAME statement to assign a fileref to  an OpenVMS text library     filename mytxtlib      mydir mydata tlb        Then  assuming that you want to use a library member name
23. nd sign  and    at sign  cannot be used in external file  specification because they are not valid in OpenVMS filenames     Specifying Concatenated Files    Under OpenVMS  you can specify concatenations of files when reading and writing  external files from within the SAS System  Concatenated files consist of two or more  file specifications  enclosed in quotes and separated by commas  You can include  wildcard characters in the file specifications    The usual rules for OpenVMS version numbering apply  You cannot use a percent  symbol     in the version number field    The following are some examples of valid concatenation specifications     filename allsas       one sas  two sas  three sas                 filename alldata    test datal  test data2  test data3                include    one sas  two sas                 infile     areal alldata dat   area2 alldata dat                 infile    test  dat  in dat           Using Aggregate Syntax to Identify External Files    You can also use aggregate syntax to access individual files  To do so  assign a SAS  fileref or an OpenVMS logical name to a directory  and specify the individual filename  in parentheses  For example  suppose you use the following FILENAME statement to  associate the fileref MYFILE with the directory  MY DIR      filename myfile     mydir         To access a file named SCORE S02 DAT in that directory  you could use the following  INFILE statement     infile myfile scores02      By default  the INFILE state
24. ning OpenVMS Logical Names to External Files    You can use an OpenVMS logical name as a file specification  Use the DCL DEFINE  command to associate a logical name with an external file    When you assign an OpenVMS logical name to an external file  you cannot use the  pound sign    or the at sign    because these characters are not valid in OpenVMS  logical names   By contrast  if you use the FILENAME statement to assign a fileref   you can use these characters because filerefs follow SAS naming conventions   Also   using the DCL DEFINE command to define an OpenVMS logical name does not allow  you to specify the keywords or options that are available with the FILENAME  statement and the FILENAME function    Remember that you can use the SAS X statement or X command to issue a DCL  DEFINE command from within a SAS program or a SAS process   For details  see     Issuing DCL Commands during a SAS Session    on page 37      Note  If you use the SAS X statement or X command to issue the DCL DEFINE  command  then you want to use the method described in    Issuing a Single DCL  Command    on page 37  which executes the command in the parent OpenVMS process    not the method described in    Issuing Several DCL Commands    on page 40  which  executes multiple DCL commands in an OpenVMS subprocess   OpenVMS logical  names that are defined in a subprocess are not recognized by the current SAS process   By contrast  OpenVMS logical names that are defined in the OpenVMS parent process  
25. ollowing error message     ERROR  Tape block size less than LRECL specified     To write to an unlabeled tape from the DATA step  you must indicate the tape format  by using RECFM D  If you do not use RECFM  D for this type of access  the results are  unpredictable    You must also use the LRECL  option to indicate the length of each record  If the  records that you are writing are variable length records  then use a value for the  LRECL option that is the maximum record length  The minimum LRECL value is 14   This minimum value is the only restriction on the LRECL  value for unlabeled tapes     Reading from a Labeled Tape    When the SAS System reads a file from a labeled tape  it searches for a filename on  the tape that matches the filename used in the DEFINE command or FILENAME  statement  The following example illustrates reading an external file from a labeled  tape to create a SAS data set       ALLOCATE TAPEDEVICE    MOUNT TAPEDEVICE LABEL1    DEFINE INTAPE TAPEDEVICE EXPGIFTS DAT    SAS     notes and messages to SAS log    1  data expenses     2  infile intape   3  input gift   price   4  run       notes and messages to SAS log    5  x    dismount tapedevice      6  x  deallocate tapedevice      7     The DATA step in this example reads a file named EXPGIFTS DAT  which is located  on the tape identified by the label LABEL1   The file is referenced by the fileref  INTAPE in the INFILE statement   After the read operation  the tape is positioned at  the start of the ne
26. quotation marks  For  example  to  joe somplace org    and to   joe smplc org      jane diffplc org     are valid TO values     CC cc address    specifies the recipients you want to receive a copy of the electronic mail  If an  address contains more than one word  you must enclose it in single quotation  marks  To specify more than one address  you must enclose the group of  addresses in parentheses and enclose each address in single quotations  marks  For example  cc  joe somplace org    and cc   joe smplc org        jane diffplc org     are valid CC values     SUBJ ECT  subject       specifies the subject of the message  If the subject text is longer than one  word  you must enclose it in single quotation marks  For example     Using External Files A Example  Sending E Mail from the DATA Step 181    subject Sales and subject    June Report    are valid SUBJ ECT values  Any  subject text that is not enclosed in quotation marks is converted to uppercase     You can also specify the email options in the FILE statement inside the DATA step   Options that you specify in the FILE statement override any corresponding options that  you specified in the FILENAME statement    In your DATA step  after using the FILE statement to define your email fileref as  the output destination  use PUT statements to define the body of the message    You can also use PUT statements to specify email directives that change the  attributes of your electronic message or perform actions with it  Specify
27. the following DATA step     filename mymail email    JBrown     subject     My CONFIG SAS file        data null    file mymail   put    Jim      put    This is my CONFIG SAS file        182 Example  Sending E Mail from the DATA Step A Chapter 7    put    I think you might like the  new options I added      run     The following example sends a message to multiple recipients  It specifies the  email options in the FILE statement instead of the FILENAME statement     filename outbox email     ron acme com        data null    file outbox  to        ron acme com       lisa acme com          Overrides the value in        the filename statement        cc      margaret yourcomp com        lenny laverne abc com        subject     My SAS output       put  Folks      put    Take a look at my output from the   SAS program I ran last night       put    It worked great       run     You can use conditional logic in the DATA step to send multiple messages and control  which recipients get which messages  For example  suppose you want to notify members  of two different departments that their customized reports are available  If your email  program handles alias names  your DATA step might look like the following     filename reports email    Jim       data null    file reports   infile cards eof lastogs   length name dept   21   input name dept   put     EM TO     name      Assign the TO attribute       put   EM SUBJECT  Report for   dept      Assign the SUBJECT attribute        put name  
28. ur SAS session as described in    Assigning OpenVMS Logical Names to External  Files    on page 167  You can also use the FILENAME statement to assign a fileref toa  remote external file  Within the quoted string  DEFINE command  or FILENAME  statement  use the same syntax that you would use in any OpenVMS file specification  to access a target node  For example  to access the file TEST DAT on node VMSNODE   specify the following FILENAME statement     filename mine    vmsnode   mydisk  mydir test data        To include a user name and password of an account on the target node as part of the  file specification  use the following FILENAME statement     filename mine    vmsnode  user id  password    mydisk   mydir test data        For more information about DE Cnet access and file specification syntax  refer to  DECnet for OpenVMS Guide to Networking and DE Cne for OpenVMS Networking  Manual     Note TheMBC and MBF external I O statement options are not supported  across DE Cnet  a       Sending Electronic Mail from within the SAS System    The SAS System enables you to send electronic mail  e mail  using SAS functions in  a DATA step or in SCL  Sending email from within the SAS System allows you to    use the logic of the DATA step or SCL to subset email distribution based on a  large data set of email addresses    send e mail automatically upon completion of a SAS program that you submitted  for batch processing    direct output through e mail based on the results of process
29. xt file     178 Reading from an Unlabeled Tape A Chapter 7    Reading from an Unlabeled Tape    When you read from an unlabeled tape  you must position the tape to the appropriate  file because there is no filename for which to search  Remember that the DEFINE  command or FILENAME statement for an unlabeled tape includes only the OpenVMS  logical name or fileref  plus the name of the tape device  If you specify a filename  it is  ignored    Here are two ways of positioning a tape to the correct file    Use null DATA steps to position the tape to the file you want   Use the  SKIP FILES  n qualifier in the SET MAGTAPE command  where n is the  number of files to skip                       The following example illustrates using a null DATA step to skip the first file on an  unlabeled tape so that the second DATA step can read the next file       ALLOCATE TAPEDEVICE    MOUNT FOREIGN TAPEDEVICE    DEFINE MYTAPE TAPEDEVICE    SAS  notes and messages to SAS log    1  data null      2  infile mytape recfm d lrecl 80   3  input   4  run     notes and messages to SAS log    5  data prices     6  infile mytape recfm d lrecl 80   7  input name   x y zZ    8  prod x y    9  if prod lt z then output    0  run     notes and messages to SAS log    5  x    dismount mytape      6  x     deallocate mytape      7     The next example illustrates how to read the second file from the tape that is  referenced by the OpenVMS logical name MYTAPE by using the SET MAGTAPE  command with the  SKIP FILES 
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
  SerialFlash User Manual  Philips 231S4LSB  Xilinx LogiCORE IP CAN 3.2 User's Manual  Client User Guide  ARTled aqua - te  Montage - ATI Autoteile Immler  Oster 155876 Blender User Manual    Copyright © All rights reserved. 
   Failed to retrieve file