楼主的意思不是很理解:
数据来源表为 tab_101_0505 是指:select from tab_101_0505;
但是每次插入的是10个表的数据,即tab_101_0505,tab_102_0505,tab_103_0505 ...tab_109_0505
再插回来吗?
数据来源表为 tab_101_0505 是指:select from tab_101_0505;
但是每次插入的是10个表的数据,即tab_101_0505,tab_102_0505,tab_103_0505 ...tab_109_0505
再插回来吗?
应该是:
2005年5月20日的时候,数据来源表为 tab_101_0505,tab_102_0505....tab_101_0505
2005年6月20日的时候,数据来源表为 tab_101_0506,tab_102_0506...tab_109_0506
每次都是从9个表中(上面贴子的10个是笔误)取数据,往tab_1里插
is
num number;
begin
execute immediate 'select count(*) from '||aa||' where to_char(col,'''mmdd'')='substr(aa,9,4) into num;
insert into tab1 values('2005'||substr(aa,9,2),substr(aa,5,3),num);
commit;
end;create produce 中建立一个循环将表的名字拼出来
inser(str)来执行以上程序没有测试 希望对楼主有所帮助
pc_date char --输入参数,月份,如“200506”
)
Is
v_sqlstr varchar2(4000);
v_tbl_name varchar2(30);
i number;
Begin
v_sqlstr:='truncate table tab_1';
execute immediate v_sqlstr; For i In 1 .. 9 Loop
v_tbl_name:='tab_10'||i||'_'||substr(pc_date,3,4);
v_sqlstr:='Insert Into tab_1
select '||pc_date||',''10'||i||''',count(*) from '||v_tbl_name;
execute immediate v_sqlstr;
commit;
End Loop;
End p_insert_tab_by_month;随便写的,没测试,楼住可参考。
还在研究中..