The length semantic DS does not know about, so for us a varchar2(20 char) and varchar2(20 byte) is both 20 chars long. That might be correct for single byte database codepage but not if the database does use UTF-8 as the database codepage. And a varchar2(20) can be either thing as the database has a default for the length semantic as well which can be changed.
A nvarchar(20) is always with char length semantic in Oracle, so we are safe there.
BTW, what we do often is to store additional metadata in the attributes of the imported table or column. Like in this case we show varchar datatype only but by looking at the columns’ class attributes you can find out more. Note: I am not particularly sure we save nvarchar/varchar2 but other examples I know of.