title: Why does DECLARE exist if it is optional in PL/SQL stored procedures?
body: <p>I have been told that i can omit <code>declare</code> keyword in a Declaration section of a stored procedure. Is <code>declare</code> keyword optional for a Declaration section?  If it is, then why does it exist at all?</p>
  
  <pre><code>create or replace procedure myproc is
  
  -- starting Declaration section
  DECLARE  -- is DECLARE keyword optional? Can i omit it here?
  cursor mycursor as
  select ...;
  var1 number;
  var2 varchar2;
  -- end of Declaration section
  
  BEGIN
  ...
  END myproc;
  </code></pre>