Oracle一次可以使用一个SQL语句或PL / SQL匿名块. (与SQL Server不同,除了一次批处理外.)因此,您有几个选择.

>将两个匿名块包装在另一个匿名块中:

begin

-- 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;

end;

>告诉您正在使用的工具将PL / SQL提交给Oracle以单独发送两个块.如何做到这一点将是特定工具.在SQL * PLUS中,一行/一行将完成此任务:

-- 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;

/

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐