The ASSIGN clause in the SELECT clause is used to specify either a physical filename or a logical name which can be mapped to a physical name at run time.
There are three types of filename assignment:
The filename is specified as a literal in the ASSIGN clause
The filename is specified as a data-item in the ASSIGN clause, and so can be changed by the program at run time
The filename is specified as EXTERNAL in the ASSIGN clause and is resolved at run time
Run-time mapping of filenames is available for all three types of filename assignment.