title: Why does Oracle varchar2 have a mandatory size as a definition parameter?
body: <p>I want to know why Oracle needs the size parameter in the definition of the <code>VARCHAR2</code>.</p>
  
  <p>I think that is for constraint. Would it be a better option that oracle takes this parameter as an optional like <code>NUMBER</code> dataType?</p>
  
  <p>I often have problems resizing old tables to larger sizes, because sometimes a value is bigger than the size definition of the <code>VARCHAR2</code> column.</p>
  
  <p>It's the same to define a type of <code>VARCHAR2(10</code>) or <code>VARCHAR2(1000)</code>.</p>
  
  <p>I guess, it's an unnecessary constraint. If not, do you know of a real case when this constraint resulted in something useful? And why no such declaration in <code>NUMBER</code> type ?</p>