萬能拆分指令碼

2021-07-05 03:58:22 字數 3285 閱讀 2979

– 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 作為帳戶身份驗...