FOR i in (select user_name,table_name from tb_parition_table_name)
loop
v_table_name:=upper(i.table_name);
v_user_name:=upper(i.user_name);
for j in (SELECT to_char(TRUNC(SYSDATE,'MM')+ROWNUM-1,'yyyymmdd') partiton_flag_ FROM dual connect by ROWNUM<=to_char(last_day(SYSDATE),'dd'))
loop
v_sql:='alter table '||v_user_name||'.'||v_table_name||' add partition part_'||j.PARTITON_FLAG||' values ('''||j.PARTITON_FLAG||''')';
--dbms_output.put_line(v_sql);
execute immediate v_sql;
end loop;
end loop;
这个双重循环中,外循环的i.table_name和i.user_name是什么意思,为什么要加 i. ,i 在数据集的范围内,这个数据集结果有两个字段,每次循环 i 对应是哪些值,内循环中形成的分区名结果是 part_20190101这种格式的,那 j.PARTITON_FLAG 是什么意思呢,为什么要加 .PARTITON_FLAG?