ORACLE里面动态的添加字段,如果存在就不添加,如果不存在就添加。sql语句怎么写?
展开全部
declare
p_table_name varchar2(30);
p_column_name varchar2(30);
p_data_type varchar2(30);
p_cnt number;
p_sql varchar2(4000);
begin
p_table_name:='';
p_column_name:='';
select count(1) into p_cnt from user_tab_cols where a.table_name=p_table_name and a.column_name=p_column_name;
if p_cnt=0 then
p_sql:='alter table '||p_table_name||' add '||p_column_name||' '||p_data_type;
execute immediate p_sql;
end if;
end;
没测试,不过基本应该可以
更多追问追答
追问
这个a.table_name里面的a是代表什么呢?
追答
user_tab_cols 应该加个 a 的,我忘记了
a就是表的别名的意思,起个别名,写的时候简单,要不得写表的全名,那样太麻烦
而且阅读也不直观
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询