日期:2014-05-17  浏览次数:20655 次

如何实现自动插入可变字段名
SQL code

DECLARE
 v_sum Varchar2(25):='sum '; 
 v_tmp Varchar2(25);
 BEGIN
         v_tmp=concat(v_qty,to_char(sysdate,'yymmdd'));
     Alter Table aaaa Add (v_tmp Number(22,5)) ;
 END;



上面代码无法正常执行,从上面可以看出我的需求,就是想每天向aaaa自动插入一新列,列名称是变化的,能不能实现啊?


------解决方案--------------------
每天自动增加一列,lz好想法,这是什么业务逻辑,很夸张的说
SQL code
DECLARE
 v_sum Varchar2(25):='sum'; 
 v_tmp Varchar2(25);
 BEGIN
     v_tmp:=concat(v_sum,to_char(sysdate,'yymmdd'));
     execute immediate 'Alter Table aaaa Add (' || v_tmp || ' Number(22,5))';
 END;

------解决方案--------------------
execute immediate 'Alter Table aaaa Add('||v_tmp||'Number(22,5))';

注意加空格 在 v_tmp 和 Number之间
--》

execute immediate 'Alter Table aaaa Add( '||v_tmp||' Number(22,5))';