Assuming that you don't need to do calculations on the field, the only other reason for representing a field with a numeric data type is the ordering issue and that can usually be addressed with code of the form
Code:
ORDER BY Val([SomeField]), [SomeField]
Where "Val" is some function (varies by DBMS) that converts a character string to a Number. Many of the "license plate" (i.e. identifier) fields have other constraints such as "may contain digits or letters", must have leading zeros", "may contain spaces or special characters", etc. and none of those can be accommodated with a numeric data type.
Using a numeric data type can lead into discussions about attaching meaning to the value of the number but there is really no such meaning. The only relevance that the "value" has is that it is unique.
There are also overflow issues to consider with numerics.
If you have a field of the form "050605280069" (a typical UPCA 12-digit bar code) then it has some internal structure.
[li]Digit 1 - Industry Code[/li]
[li]Digits 2-6 - Manufacturer Code[/li]
[li]Digits 7-11 - Unique Number[/li]
[li]Digit 12 - Check Digit[/li]
If it is numeric then the first digit (0) will be missing and you will have to convert it to a character string anyway to extract the sub-fields.
Incidently, building a substructure into such codes is usually a mistake and violates normalization rules which say that each field should be atomic and that means that no part of the field should have meaning (date fields excepted).