- 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))';