Currently, the VARCHAR and VARCHAR2 data types are identical. But to accommodate emerging SQL standards, VARCHAR might become a separate data type in future.

The CHAR data type doesn't have any advantage over VARCHAR2 and makes searching more difficult because the right-padded values.

declare
  var1 varchar(10); -- noncompliant
  var2 char(10); -- noncompliant
  
  var3 varchar2(10); -- compliant
begin
  null;
end;