title: Two PLSQL statements with begin and end, run fine separately but not together?
body: <p>Just wondering if anyone can help with this, I have two PLSQL statements for altering tables (adding extra fields) and they are as follows:</p>
  
  <pre><code>-- Make GC_NAB field for Next Action By Dropdown
  
  begin
  if 'VARCHAR2' = 'NUMBER' and length('VARCHAR2')&gt;0 and length('')&gt;0 then
    execute immediate 'alter table "SERVICEMAIL6"."ETD_GUESTCARE" add(GC_NAB VARCHAR2(10, ))';
  elsif ('VARCHAR2' = 'NUMBER' and length('VARCHAR2')&gt;0 and length('')=0) or
    'VARCHAR2' = 'VARCHAR2' then
    execute immediate 'alter table "SERVICEMAIL6"."ETD_GUESTCARE" add(GC_NAB VARCHAR2(10))';
  else
    execute immediate 'alter table "SERVICEMAIL6"."ETD_GUESTCARE" add(GC_NAB VARCHAR2)';
  end if;
  commit;
  end;
  
  -- Make GC_NABID field for Next Action By Dropdown
  
  begin
  if 'NUMBER' = 'NUMBER' and length('NUMBER')&gt;0 and length('')&gt;0 then
    execute immediate 'alter table "SERVICEMAIL6"."ETD_GUESTCARE" add(GC_NABID NUMBER(, ))';
  elsif ('NUMBER' = 'NUMBER' and length('NUMBER')&gt;0 and length('')=0) or
    'NUMBER' = 'VARCHAR2' then
    execute immediate 'alter table "SERVICEMAIL6"."ETD_GUESTCARE" add(GC_NABID NUMBER())';
  else
    execute immediate 'alter table "SERVICEMAIL6"."ETD_GUESTCARE" add(GC_NABID NUMBER)';
  end if;
  commit;
  end;
  </code></pre>
  
  <p>When I run these two queries separately, there are no problems. However, when run together as shown above, Oracle gives me an error when it starts the second statement:</p>
  
  <pre><code>Error report:
  ORA-06550: line 15, column 1:
  PLS-00103: Encountered the symbol "BEGIN" 
  06550. 00000 -  "line %s, column %s:\n%s"
  *Cause:    Usually a PL/SQL compilation error.
  *Action:
  </code></pre>
  
  <p>I'm assuming that this means the first statement is not terminated properly... is there anything I should put in between the statements to make it work properly?</p>