Oracle存储过程--动态增加和删除数据库表字段

(1)增加字段 参数表名、字段名、字段类型
create or replace procedure TRYADDTABCOLUMN(tabName in varchar2, colName in varchar2, colType in varchar2) is
n_col int;
stmt VARCHAR(2000);
begin
select count(*) into n_col from cols
where table_name = upper(tabName) and column_name = upper(colName);
if n_col<1 then
stmt :='alter table ‘||tabName||’ add ‘||colName||’ '||colType;
execute immediate stmt;
end if;
end TRYADDTABCOLUMN;

(2)删除字段 参数表名、字段名、字段类型
create or replace procedure TRYDROPTABCOLUMN(tabName in varchar2, colName in varchar2) is
n_col int;
stmt VARCHAR(2000);
begin
select count(*) into n_col from cols
where table_name = upper(tabName) and column_name = upper(colName);
if n_col>0 then
stmt :='alter table ‘||tabName||’ drop column '||colName;
execute immediate stmt;
end if;
end TRYDROPTABCOLUMN;

(3)此存储过程会先判断将要插入的字段是否在表中已经存在,如存在则忽略,不存在时再增加列。
– 调用示例

CALL tryaddtabcolumn(‘TTRD_TRADE_FLOW’,‘EXE_MARKET’,‘VARCHAR2(20)’);
COMMENT on column TTRD_TRADE_FLOW.EXE_MARKET is ‘交易平台’;


 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值