动态更新(添加)列
这两天有个需求:在BI项目驾驶舱上有一个12个月的趋势图,在后台数据表中是有12列存放每个月的数据,另外还有一列用来存放当月的值;其中那12列的列名是有一定规律的qs_月份,打算用更新的方法。 FOR v_loop IN 1 .. v_max_month LOOP v_column_name := 'v' || v_loop; v_sql
这两天有个需求:在BI项目驾驶舱上有一个12个月的趋势图,在后台数据表中是有12列存放每个月的数据,另外还有一列用来存放当月的值;其中那12列的列名是有一定规律的qs_月份,打算用更新的方法。
FOR v_loop IN 1 .. v_max_month
LOOP
v_column_name := 'v' || v_loop;
v_sql := 'UPDATE DM_D_YGGSZB T SET ' || v_column_name || '=(SELECT ' || v_column_name ||
' FROM DM_D_YGGSZB F WHERE RQ= ' || v_loop_date ||
' AND T.ZBDM=F.ZBDM AND T.CJ=F.CJ AND T.ZBLX=F.ZBLX AND T.ZZDM=F.ZZDM) WHERE T.RQ= ' || v_date;
EXECUTE IMMEDIATE v_sql;
COMMIT;
END LOOP;
动态添加列
DECLARE
v_var VARCHAR2(200);
BEGIN
FOR i IN 1 .. 38 LOOP
v_var:= 'ALTER TABLE ORADS.C'||i||'_OUTBOUNDL_CHEADER ADD (qezy CHAR(1))';
EXECUTE IMMEDIATE v_var;
END LOOP;
END ;
更多推荐
所有评论(0)