–增加字段 参数表名、字段名、字段类型
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;
– 此存储过程会先判断将要插入的字段是否在表中已经存在,如存在则忽略,不存在时再增加列。
– 调用示例
CALL tryaddtabcolumn(‘TTRD_TRADE_FLOW’,‘EXE_MARKET’,‘VARCHAR2(20)’);
COMMENT on column TTRD_TRADE_FLOW.EXE_MARKET is ‘交易平台’;
–删除字段 参数表名、字段名、字段类型
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;
本文介绍了一种使用Oracle存储过程动态添加或删除数据库表字段的方法。通过TRYADDTABCOLUMN和TRYDROPTABCOLUMN两个存储过程,可以判断字段是否存在,若不存在则添加字段,若已存在则忽略;对于删除操作,如果字段存在,则执行删除。这些存储过程提供了灵活的数据库表结构管理方式。
1051

被折叠的 条评论
为什么被折叠?



