– author: dengyu
– file: split_partyyyymm_char.sql
– desc: 拆分檔案命名格式yyyymm
– order: desc
– date:2015-09-08
– note: 該指令碼只僅僅列印拆分指令碼,並非執行
– version 2.0 dengyu
倒序拆分 自動判斷分割槽值格式是number,date,char
declare
v_tabname varchar2 (130) := 『owner.tablename』; –表名
v_partname_start varchar2 (120) := 『pre_tab_』; –分割槽開頭
v_partmax varchar2 (130) := 『tab_max』; –最大分割槽名
v_partend date := date 『2015-6-1』; – 預分到分割槽月份
v_partcur date := date 『2013-5-1』; – 當前的最大分割槽月份
v_partnext date;
v_sql varchar2 (32766);
v_pctype1 varchar2(100);
v_pctype2 varchar2(100);
v_col varchar2(100);
v_coltype varchar2(100);
begin
select tc.column_name,tc.data_type into v_col,v_coltype
from dba_part_key_columns pc
join
dba_tab_columns tc
on pc.owner = tc.owner
and pc.name = tc.table_name
and pc.column_name = tc.column_name
where tc.table_name =
upper (
case
when instr (v_tabname, 『.』) > 0
then
substr (v_tabname,
instr (v_tabname, 『.』) + 1)
else
v_tabname
end)
and tc.owner =
case
when instr (v_tabname, 『.』) > 0
then
upper (
substr (v_tabname,
1, instr (v_tabname, 『.』) - 1))
else
user
end;
if v_coltype = 『date』
then
v_pctype1 := 『to_date(」』;
v_pctype2 := 」』,」yyyymmdd」)』;
elsif ( v_coltype = 『varchar2』
or v_coltype = 『varchar』
or v_coltype = 『char』)
then
v_pctype1 := 」」;
v_pctype2 := 」」;
else
v_pctype1 := 」;
v_pctype2 := 」;
end if;
– split max
v_sql :=
『alter table 』
|| v_tabname
|| 』 split partition 』
|| v_partmax
|| 』 at(』
|| v_pctype1
||to_char(add_months (v_partend, 1),』yyyymm』)
||v_pctype2
|| 『)into (partition 』
|| v_partname_start
|| to_char (v_partend, 『yyyymm』)
|| 『, partition 』
|| v_partmax
|| 『)』;
dbms_output.put_line(v_sql);
– execute immediate v_sql;
– dbms_output.put_line(to_char (v_partend, 『yyyymm』)||』 had splited.』);
– split yyymm partition itertor
while v_partcur < v_partend
loop
v_partnext := add_months (v_partend, -1);
v_sql :=
『alter table 』
|| v_tabname
|| 』 split partition 』
|| v_partname_start
|| to_char (v_partend, 『yyyymm』)
|| 』 at(』
|| v_pctype1
|| to_char(v_partend,』yyyymm』)
||v_pctype2
|| 『)into (partition 』
|| v_partname_start
|| to_char (v_partnext, 『yyyymm』)
|| 『, partition 』
|| v_partname_start
|| to_char (v_partend, 『yyyymm』)
|| 『)』;
dbms_output.put_line(v_sql);
– execute immediate v_sql;
– dbms_output.put_line(v_partnext||』 had splited.』);
v_partend := v_partnext;
end loop;
end;
生成的指令碼手動執行或把execute 前注釋去掉直接執行,
另外可以根據dba[all][user]_part_tables 判斷分割槽型別,再公升級上面的指令碼自適應list,range 分割槽
注意分割槽後的index status
萬能密碼 php,PHP萬能密碼
說實話如果乙個 的前台都是注入漏洞,那麼憑經驗,萬能密碼進後台的機率基本上是百分之百。可是有的人說對php的站如果是gpc魔術轉換開啟,就會對特殊符號轉義,就徹底杜絕了php注入。其實說這話的人沒有好好想過,更沒有嘗試過用萬能密碼進php的後台。其實gpc魔術轉換是否開啟對用萬能密碼進後台一點影響也...
mysql萬能 Mysql的萬能優化方法
在命令列執行 1.檢視優化器狀態 show variable like optimizer trace 2.會話級別臨時開啟 set session optimizer trace enabled on end markers in json on 3.設定優化器追蹤的記憶體大小 set optim...
萬能的應用商店 WiFi萬能助手
許可權列表 wifi萬能助手 獲取定位 允許應用通過網路或衛星對裝置進行定位 獲取額外的位置資訊提供程式命令 獲取額外的位置資訊提供程式命令。惡意應用程式可藉此干擾 gps 或其他位置源的正常工作。檢視網路狀態 允許應用程式檢視所有網路的狀態。開關wlan 允許應用開啟或關閉wlan 作為帳戶身份驗...