The following example
               shows the effect of implicit locking when two clients, John and Maria,
               share access concurrently to the SAS data set FUEL in their respective
               PROC FSEDIT sessions.
            
 
            Maria is updating observation
               6. John terminates his FSEDIT session to do some data analysis. He
               wants a sorted report of fuel inventory data, so he submits statements
               to sort and print the data set FUEL. The following SAS log shows this
               part of John's session.
            
 
            Log Window - PROC SORT on a Locked Data Set
   Command ===>
   3   PROC SORT DATA=DATALIB.FUEL;
   4   BY AREA;
   5   RUN;
   ERROR: You cannot open DATALIB.FUEL.DATA for output access
          with member-level control because DATALIB.FUEL.DATA
          is in use by FSEDIT.
   NOTE: The SAS System stopped processing this step because 
         of errors.
   NOTE: The PROCEDURE SORT used 0.03 CPU seconds and 3969K.
   6   PROC PRINT DATA=DATALIB.FUEL;
   7   BY AREA;
   8   RUN;
   ERROR: Data Set DATALIB.FUEL is not sorted in ascending 
          sequence. The current by-group has AREA = TEX1 
          and the next by-group has AREA = TEX2.
   NOTE: The SAS System stopped processing this step because 
         of errors.
   NOTE: The PROCEDURE PRINT used 0.03 CPU seconds and 4068K. 
            
            Because the OUT= option
               is not specified in the PROC SORT statement, the process defaults
               to the data set named by the DATA= option and the SORT procedure tries
               to replace the SAS data set.  However, because Maria's FSEDIT session
               has the data set open for update, the SORT procedure cannot open it
               for output.
            
 
            The SAS log shows that
               the PROC PRINT step executes because the PRINT procedure opens its
               input data set with observation-level control. However, the PRINT
               procedure terminates prematurely because the data set is not sorted
               correctly.  Notice that even if the data set were in sorted order
               when John terminated PROC FSEDIT, Maria could have changed the value
               of AREA in one or more observations so that the data set would not
               be sorted correctly when the PRINT procedure executed.
            
 
            To avoid the conflict
               and ensure that John gets the report he wants, John can use the OUT=
               option to write a copy of the sorted data set into his WORK library,
               as shown in the following example:    
proc sort data=datalib.fuel out=fuel;
   by area;
run;
 
            The preceding PROC SORT
               statement  opens the data set DATALIB.FUEL only for input with observation-level
               control. Then John can use the PRINT procedure to display the temporary
               data set WORK.FUEL.