首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >alter table sql脚本

alter table sql脚本
EN

Stack Overflow用户
提问于 2016-03-09 01:31:07
回答 1查看 735关注 0票数 0

如果我有table_abc的话。现在,我修改并添加了一些列,如下所示

代码语言:javascript
复制
alter table_Abc add ( congif_id number, sso number);

现在,我第二次添加了一些列,以及congif_id和单点登录:

代码语言:javascript
复制
alter table_Abc add ( congif_id number, sso number,name varchar2(100));

但这是抛出错误column already exists.

即使名称相同并添加新的名称,alter脚本不应该仍然运行吗?

EN

回答 1

Stack Overflow用户

发布于 2016-03-09 01:36:35

不,这个错误是意料之中的。如有必要,您可以使用动态SQL重新运行DDL脚本,例如:

代码语言:javascript
复制
begin
   execute immediate
   'alter table table_Abc add ( congif_id number)';
exception
   when others then 
      if sqlcode = -1430 then
         null;
      end if;
end;

begin
   execute immediate
   'alter table table_Abc add ( sso number)';
exception
   when others then 
      if sqlcode = -1430 then
         null;
      end if;
end;
...

或者如果你经常做这样的事情:

代码语言:javascript
复制
declare
   procedure run_ddl
      ( p_sql varchar2
      , p_ignored_exception integer
      )
   is
   begin
      execute immediate p_sql;
   exception
      when others then 
         if sqlcode = p_ignored_exception then
            null;
         end if;
   end;
begin
   run_ddl ('alter table table_Abc add ( congif_id number)', -1430);
   run_ddl ('alter table table_Abc add ( sso number)', -1430);
end;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35874066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档