Zwei PLSQL-Anweisungen mit begin und end, gut laufen einzeln, aber nicht zusammen?

Einfach Fragen, wenn jemand helfen kann, mit diesem habe ich zwei PLSQL-Anweisungen zum ändern von Tabellen (hinzufügen zusätzlicher Felder) und Sie sind wie folgt:

-- Make GC_NAB field for Next Action By Dropdown

begin
if 'VARCHAR2' = 'NUMBER' and length('VARCHAR2')>0 and length('')>0 then
  execute immediate 'alter table "SERVICEMAIL6"."ETD_GUESTCARE" add(GC_NAB VARCHAR2(10, ))';
elsif ('VARCHAR2' = 'NUMBER' and length('VARCHAR2')>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')>0 and length('')>0 then
  execute immediate 'alter table "SERVICEMAIL6"."ETD_GUESTCARE" add(GC_NABID NUMBER(, ))';
elsif ('NUMBER' = 'NUMBER' and length('NUMBER')>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;

Wenn ich diese beiden Abfragen getrennt, gibt es keine Probleme. Allerdings, wenn Sie zusammen ausgeführt werden, wie oben gezeigt, Oracle gibt mir eine Fehlermeldung, wenn es beginnt die zweite Aussage:

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:

Ich gehe davon aus, dass dies bedeutet, dass die erste Aussage ist nicht korrekt beenden... gibt es etwas, ich sollte zwischen den Aussagen, damit es richtig funktioniert?

InformationsquelleAutor Twiss | 2010-06-11

Schreibe einen Kommentar