如何实现自动插入可变字段名 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自动插入一新列,列名称是变化的,能不能实现啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 每天自动增加一列,lz好想法,这是什么业务逻辑,很夸张的说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; 提示无效的数据类型在 line 6。。 我测试语句没有问题,你试着直接执行下面的语句看Alter Table aaaa Add (sum111114 Number(22,5)) 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;PLSQL执行,说在第6行有无效的数据类型 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))'; 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))';-- Number(22,5)前少了一个空格END; |zyciis| 谁帮优化一条Oracle更新数据?我执行3个钟都没有执行完。谢谢 菜鸟请教挂载问题?指导下:alert_oradb.log怎么看? 分组SQL? Oracle9i的安装是否和CPU的个数有关 求助!!提提数据解决方案! 存储过程中自定义varray数组 我的机器Oracle9.0能安装成功,9.2版本就不行,点击setup.exe一点反应都没有啊,急求帮助! TNS-03505:未能分解名称? 关于Statspack的问题。 刚刚安装oracle8i的麻烦事 多条件匹配内容查询 客户端连接oracle为什么无法正常生成SQL-TRACE
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;
提示无效的数据类型在 line 6。。
Alter Table aaaa Add (sum111114 Number(22,5))
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;PLSQL执行,说在第6行有无效的数据类型
--》execute immediate 'Alter Table aaaa Add( '||v_tmp||' Number(22,5))';
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))';-- Number(22,5)前少了一个空格
END;