In the documentation, there is a topic:
"Starting with Raw Data: Beyond the Basics"
and in that topic is a sub-topic:
"Problem Solving: When an Input Record Unexpectedly Does Not Have Enough Values"
That section of the doc has very thorough examples of MISSOVER, TRUNCOVER, FLOWOVER and STOPOVER. With data and code....
I recommend this section. If you search for the string "TRUNCOVER" in the on-line doc, you should find the "Starting with Raw Data" topic and can follow links from there.
The main difference between MISSOVER and TRUNCOVER occurs when you have variable length records and are using formatted or column input. TRUNCOVER reads "partial" data that falls at the end of the record, whereas MISSOVER sets the value to missing.
An example to further clarify: An INPUT statement requests to read exactly 5 bytes starting at position 18, but a data record is only 20 bytes long. TRUNCOVER will treat bytes 18-20 as valid data. MISSOVER sees that bytes 21 and 22 are not present and considers the field to be invalid. If the record had been 17 bytes long, both TRUNCOVER and MISSOVER would produce a missing value.
Variable length records were pretty rare in the early mainframe days of SAS, but they are nearly universal in Windows and Unix-family systems. As a general rule, TRUNCOVER should be used in most modern SAS applications.