这种最好还是在过程之中去写,一条语句可能不知道能不能实现。
在达茂旗等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、网站制作 网站设计制作定制网站开发,公司网站建设,企业网站建设,高端网站设计,全网营销推广,外贸营销网站建设,达茂旗网站建设费用合理。
加一条判断SELECT * FROM SYSTEM.COL WHERE TNAME = 'test ' and cname = 'clm1'
是否表test 存在此clm1列,然后再做 ADD cname操作。
如果说你增加列了,然后设置为不可为空,这个是有问题的、所以建议修改表结构时、对于添加的列全部设为可为空、待你把数据填充好后,在做相应的是否为空设置
修改表名:
alter table 表名 rename to 新名
添加字段:
alter table 表名 add 字段名 字段类型
删除字段:
alter table 表名 drop column 字段名
修改字段:
alter table 表名 rename column 原字段名 to 新名;
修改字段类型(前提:表中无数据)
alter table 表名 modify 字段名 新类型;
例如:String deleteColumn="alter table t_user drop column sname";
create or replace trigger test_trigger
after insert or delete on a
for each row
declare tmpa varchar2(30);
v_dropSeqSql varchar2(300);
tmpb varchar2(30);
begin
if deleting then
tmpa:=:old.tx;
v_dropSeqSql:='alter table b drop column '||tmpa;
EXECUTE IMMEDIATE v_dropSeqSql;
end if;
if inserting then
tmpb:=:new.tx;
v_dropSeqSql:='alter table b add '||tmpb||‘ varchar2(30) ’;
EXECUTE IMMEDIATE v_dropSeqSql;
end if;
end;
要么通过语句,不过建议使用pl/sql developer来进行操作,全图形界面的,edit表即可。
需要
还有一种是存储过程使用的表有结构上的改变,需要重新编译一下。解决方法如下:重新编译一下,如果不成功,就是有语法问题,你需要修改存储过程