校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > oracle存儲過程創建表分區實例

oracle存儲過程創建表分區實例

熱門標簽:征服眼公司地圖標注 阿爾巴尼亞地圖標注app 征服者火車站地圖標注 開封智能外呼系統廠家 百度地圖標注素材 人工智能地圖標注自己能做嗎 word地圖標注方向 外呼線路外顯本地號碼 美圖秀秀地圖標注

用存儲過程創建數據表:
創建時注意必須添加authid current_user,如果創建的表已存在,存儲過程繼續執行,但如不不加此關鍵語句,存儲過程將出現異常,
這個語句相當于賦權限。
例1
創建語句如下:

復制代碼 代碼如下:

create or replace
procedure sp_create_mnl(i_id varchar2) authid current_user  as
  /*********************************
名稱:sp_create_mnl
功能描述:創建模擬量歷史數據存儲表

修訂記錄:
版本號   編輯時間  編輯人  修改描述
1.0.0    2012-9-20 wylaok  1.創建此存儲過程
1.0.1    2012-9-21 wylaok  2.修改表名稱及變量名稱,增加必要注釋

入參出參描述:
i_id 測點編號
**********************************/
      v_tablename varchar2(30);--表名
      v_flag number(10,0);
      v_sqlfalg varchar(200);
begin
  v_flag:=0;
      v_tablename:=CONCAT('MNL', UPPER(i_id));
      v_sqlfalg:='select count(*) from user_TABLES where table_name='''||v_tablename||'''';
      dbms_output.put_line(v_sqlfalg);
      execute immediate v_sqlfalg into v_flag;
      if v_flag=0 then  --如果沒有這個表 則去創建
         begin
  execute immediate 'create table '||v_tablename ||'
  ( DATETIME DATE,
  MIN00    FLOAT,
  AGV00    FLOAT,
  MAX00    FLOAT,
  MIN05    FLOAT,
  AVG05    FLOAT,
  MAX05    FLOAT,
  MIN10    FLOAT,
  AGV10    FLOAT,
  MAX10    FLOAT,
  MIN15    FLOAT,
  AGV15    FLOAT,
  MAX15    FLOAT,
  MIN20    FLOAT,
  AGV20    FLOAT,
  MAX20    FLOAT,
  MIN25    FLOAT,
  AGV25    FLOAT,
  MAX25    FLOAT,
  MIN30    FLOAT,
  AGV30    FLOAT,
  MAX30    FLOAT,
  MIN35    FLOAT,
  AGV35    FLOAT,
  MAX35    FLOAT,
  MIN40    FLOAT,
  AGV40    FLOAT,
  MAX40    FLOAT,
  MIN45    FLOAT,
  AGV45    FLOAT,
  MAX45    FLOAT,
  MIN50    FLOAT,
  AGV50    FLOAT,
  MAX50    FLOAT,
  MIN55    FLOAT,
  AGV55    FLOAT,
  MAX55    FLOAT,
  MINV     FLOAT,
  MAXV     FLOAT,
  AVGV     FLOAT,
  MAXTIME  DATE,
  MINTIME  DATE
  )
  tablespace WYG
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 512K
    next 512K
    minextents 1
    maxextents unlimited
    pctincrease 0
  )';
  --    execute immediate sqlstr;
         end;
      end if;
      end;

調用此存儲過程:
復制代碼 代碼如下:

begin
  createmnl('mnl_14');
  end;

例2
復制代碼 代碼如下:

CREATE OR REPLACE PROCEDURE BIP_MMS_PARTITION_PROC AS

  v_Mms_Task_Tab    VARCHAR2(50); --表名
  v_Mms_Content_Tab VARCHAR2(50);
  v_Mms_User_Tab    VARCHAR2(50);
  v_TableSpace      VARCHAR2(20); --表空間
  v_PartPreFlag     VARCHAR2(50); --分區名標識
  v_SqlCursor       NUMBER; --游標
  v_SqlExec         VARCHAR2(2000); --執行語句
  v_PartPreDate     VARCHAR2(20); --分區日期
  v_RangeValue      NUMBER;
  v_RangeDate       NUMBER;
  v_Rows            NUMBER(30) := 0;
  v_Num             NUMBER(30) := 0;
  vErrInfo          VARCHAR2(200);
  p_DateFrom        NUMBER;
  p_PartNum         NUMBER;
  p_Range           NUMBER;
BEGIN

  v_Mms_Task_Tab    := 'BIP_MMS_MT_TASK_LOG_TAB_TEST';
  v_Mms_Content_Tab := 'BIP_MMS_MT_CONTENT_TAB_TEST';
  v_Mms_User_Tab    := 'BIP_MMS_MT_USER_LOG_TAB_TEST';
  -- 讀取配置參數
  BEGIN
    SELECT TO_NUMBER(VALUE)
      INTO p_DateFrom
      FROM BIP_OTHERS_PROPERTIES_TAB
     WHERE NAME = 'p_DateFrom';
    SELECT TO_NUMBER(VALUE)
      INTO p_PartNum
      FROM BIP_OTHERS_PROPERTIES_TAB
     WHERE NAME = 'p_PartNum';
    SELECT TO_NUMBER(VALUE)
      INTO p_Range
      FROM BIP_OTHERS_PROPERTIES_TAB
     WHERE NAME = 'p_Range';
  EXCEPTION
    WHEN OTHERS THEN
      BEGIN
        p_DateFrom := 0;
        p_PartNum  := 1;
        p_Range    := 180;
      END;
  END;
  --記錄存儲過程添加分區
  INSERT INTO BIP_LOG_STAT_EXEC_TAB
  VALUES
    (TO_CHAR(SYSDATE, 'yyyymmddhh24miss'),
     'BIP_MMS_PARTITION_PROC_ADD',
     'BEGIN');
  COMMIT;
  --ADD PARTITION 
  FOR i IN 1 .. p_PartNum LOOP
    --BIP_MMS_MT_CONTENT_TAB 添加分區
    v_PartPreDate := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD');
    dbms_output.put_line(v_PartPreDate);
    v_Num         := 0;
    v_TableSpace  := 'BIP_MMS_TS_TEST';
    v_PartPreFlag := 'MMS_MT_CONTENT';
    SELECT COUNT(*)
      INTO v_Num
      FROM user_tab_partitions
     WHERE table_name = v_Mms_Content_Tab
       AND SUBSTR(partition_name, 16, 8) = v_PartPreDate;
    IF v_Num 1 THEN
      v_RangeDate  := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD');
      v_RangeValue := v_RangeDate || '240000';
      dbms_output.put_line(v_RangeValue);
      v_SqlExec := 'ALTER TABLE ' || v_Mms_Content_Tab || ' ADD PARTITION ' ||
                   v_PartPreFlag || '_' || v_PartPreDate ||
                   ' VALUES LESS THAN(''' || v_RangeValue ||
                   ''') TABLESPACE ' || v_TableSpace;
      dbms_output.put_line(v_SqlExec);
      v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
      DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
      v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
      DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
    END IF;
    --BIP_MMS_MT_TASK_LOG_TAB_TEST 添加分區
    v_PartPreDate := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD');
    v_Num         := 0;
    v_TableSpace  := 'BIP_MMS_TS_TEST';
    v_PartPreFlag := 'MMS_MT_TASK_LOG';
    SELECT COUNT(*)
      INTO v_Num
      FROM user_tab_partitions
     WHERE table_name = v_Mms_Task_Tab
       AND SUBSTR(partition_name, 17, 8) = v_PartPreDate;
    IF v_Num 1 THEN
      v_RangeDate  := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD');
      v_RangeValue := v_RangeDate || '240000';
      v_SqlExec    := 'ALTER TABLE ' || v_Mms_Task_Tab || ' ADD PARTITION ' ||
                      v_PartPreFlag || '_' || v_PartPreDate ||
                      ' VALUES LESS THAN(''' || v_RangeValue ||
                      ''') TABLESPACE ' || v_TableSpace;
      dbms_output.put_line(v_SqlExec);
      v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
      DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
      v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
      DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
    END IF;
    --BIP_MMS_MT_USER_LOG_TAB_TEST 添加分區
    v_PartPreDate := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD');
    v_Num         := 0;
    v_TableSpace  := 'BIP_MMS_TS_TEST';
    v_PartPreFlag := 'MMS_MT_USER_LOG';
    SELECT COUNT(*)
      INTO v_Num
      FROM user_tab_partitions
     WHERE table_name = v_Mms_User_Tab
       AND SUBSTR(partition_name, 17, 8) = v_PartPreDate;
    IF v_Num 1 THEN
      v_RangeDate  := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD');
      v_RangeValue := v_RangeDate || '240000';
      v_SqlExec    := 'ALTER TABLE ' || v_Mms_User_Tab || ' ADD PARTITION ' ||
                      v_PartPreFlag || '_' || v_PartPreDate ||
                      ' VALUES LESS THAN(''' || v_RangeValue ||
                      ''') TABLESPACE ' || v_TableSpace;
      dbms_output.put_line(v_SqlExec);
      v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
      DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
      v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
      DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
    END IF;
  END LOOP;
  COMMIT;

  INSERT INTO BIP_LOG_STAT_EXEC_TAB
  VALUES
    (TO_CHAR(SYSDATE, 'yyyymmddhh24miss'), 'BIP_MMS_PARTITION_PROC_ADD', 'END');
  COMMIT;

  --DELETE PARTITION
  INSERT INTO BIP_LOG_STAT_EXEC_TAB
  VALUES
    (TO_CHAR(SYSDATE, 'yyyymmddhh24miss'),
     'BIP_MMS_PARTITION_PROC_DEL',
     'BEGIN');
  COMMIT;

  BEGIN
    v_PartPreFlag := 'MMS_MT_CONTENT' || '_' ||
                     TO_CHAR(SYSDATE - p_Range, 'yyyymmdd');
    dbms_output.put_line(v_PartPreFlag);
    v_SqlExec := 'ALTER TABLE ' || v_Mms_Content_Tab ||
                 ' TRUNCATE PARTITION ' || v_PartPreFlag;
    dbms_output.put_line(v_SqlExec);
    v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
    v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
    DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
    dbms_output.put_line(v_PartPreFlag || ' truncated');

    v_SqlExec := 'ALTER TABLE ' || v_Mms_Content_Tab || ' DROP PARTITION ' ||
                 v_PartPreFlag;
    dbms_output.put_line(v_SqlExec);
    v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
    v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
    DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
    dbms_output.put_line(v_PartPreFlag || ' dropped');
  END;

  BEGIN
    v_PartPreFlag := 'MMS_MT_TASK_LOG' || '_' ||
                     TO_CHAR(SYSDATE - p_Range, 'yyyymmdd');
    dbms_output.put_line(v_PartPreFlag);
    v_SqlExec := 'ALTER TABLE ' || v_Mms_Task_Tab || ' TRUNCATE PARTITION ' ||
                 v_PartPreFlag;
    dbms_output.put_line(v_SqlExec);
    v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
    v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
    DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
    dbms_output.put_line(v_PartPreFlag || ' truncated');

    v_SqlExec   := 'ALTER TABLE ' || v_Mms_Task_Tab || ' DROP PARTITION ' ||
                   v_PartPreFlag;
    v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
    v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
    DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
    dbms_output.put_line(v_PartPreFlag || ' dropped');
  END;

  BEGIN
    v_PartPreFlag := 'MMS_MT_USER_LOG' || '_' ||
                     TO_CHAR(SYSDATE - p_Range, 'yyyymmdd');
    dbms_output.put_line(v_PartPreFlag);
    v_SqlExec := 'ALTER TABLE ' || v_Mms_User_Tab || ' TRUNCATE PARTITION ' ||
                 v_PartPreFlag;
    dbms_output.put_line(v_SqlExec);
    v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
    v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
    DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
    dbms_output.put_line(v_PartPreFlag || ' truncated');

    v_SqlExec   := 'ALTER TABLE ' || v_Mms_User_Tab || ' DROP PARTITION ' ||
                   v_PartPreFlag;
    v_SqlCursor := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE);
    v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor);
    DBMS_SQL.CLOSE_CURSOR(v_SqlCursor);
    dbms_output.put_line(v_PartPreFlag || ' dropped');
  END;

  COMMIT;

  INSERT INTO BIP_LOG_STAT_EXEC_TAB
  VALUES
    (TO_CHAR(SYSDATE, 'yyyymmddhh24miss'),
     'BIP_MMS_PARTITION_PROC_DEL',
     'END');
  COMMIT;
EXCEPTION
  WHEN OTHERS THEN
    BEGIN
      ROLLBACK;
      dbms_output.put_line(TO_CHAR(SQLCODE));
      vErrInfo := SUBSTR(SQLERRM, 1, 200);
      dbms_output.put_line(TO_CHAR(vErrInfo));
      INSERT INTO BIP_LOG_STAT_EXEC_TAB
      VALUES
        (TO_CHAR(SYSDATE, 'yyyymmddhh24miss'),
         'BIP_MMS_PARTITION_PROC_ERROR',
         vErrInfo);
      COMMIT;
    END;

end bip_mms_partition_proc;
 

您可能感興趣的文章:
  • 詳解oracle的分表之表分區的具體使用和示例
  • oracle表空間表分區詳解及oracle表分區查詢使用方法
  • Oracle 數據表分區的策略
  • Oracle數據表分區的策略
  • oracle表分區的概念及操作

標簽:宜春 葫蘆島 淮南 六安 孝感 酒泉 海北 泰安

巨人網絡通訊聲明:本文標題《oracle存儲過程創建表分區實例》,本文關鍵詞  oracle,存儲,過程,創建,表,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《oracle存儲過程創建表分區實例》相關的同類信息!
  • 本頁收集關于oracle存儲過程創建表分區實例的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    成人在线视频一区| 日韩三级视频在线看| 欧美偷拍一区二区| 日韩限制级电影在线观看| 亚洲人快播电影网| 成人爱爱电影网址| 精品国产污污免费网站入口| 午夜天堂影视香蕉久久| 色婷婷综合久久久久中文一区二区 | 99视频热这里只有精品免费| 成人网在线播放| 一区二区视频在线| 欧美日韩一区二区三区视频| 亚洲欧洲av在线| 欧美日韩在线电影| 美女脱光内衣内裤视频久久影院| 久久综合久久综合久久| 粉嫩嫩av羞羞动漫久久久| 日韩一区二区三区高清免费看看| 国产在线视频一区二区三区| 久久夜色精品国产欧美乱极品| 91欧美一区二区| 日日夜夜精品免费视频| 精品国产第一区二区三区观看体验| 成年人国产精品| 一区二区在线观看免费 | 欧美日韩成人高清| 国产一区二区三区久久久| 日本一区二区三区视频视频| 欧美三区免费完整视频在线观看| 天天影视网天天综合色在线播放| 欧美精品一区二区三区蜜臀| 欧美吞精做爰啪啪高潮| 国产精品中文有码| 国产区在线观看成人精品| 欧美日韩高清一区| 成人夜色视频网站在线观看| 午夜亚洲福利老司机| 中文乱码免费一区二区| av男人天堂一区| 亚洲一区在线视频观看| 26uuu精品一区二区在线观看| 欧美亚洲国产一区在线观看网站| 精品一区精品二区高清| 亚洲精品videosex极品| 久久亚洲精品国产精品紫薇| 欧美午夜电影在线播放| 国产日韩成人精品| 欧美日韩国产免费一区二区 | 欧美一二三四区在线| jvid福利写真一区二区三区| 日本成人在线视频网站| 一区二区三区波多野结衣在线观看 | 欧美日韩在线电影| 一区二区三区美女视频| 欧美一激情一区二区三区| 日日骚欧美日韩| 欧美色窝79yyyycom| 欧美激情一区二区三区不卡| 日本不卡一区二区三区高清视频| 成人av影视在线观看| 中文字幕不卡三区| 91精品午夜视频| 性欧美大战久久久久久久久| 国产91在线观看丝袜| 欧美视频在线观看一区二区| 精品免费视频一区二区| 天天综合色天天综合| 一区二区成人在线| 国产精品嫩草影院av蜜臀| 国产精品视频九色porn| 久久色在线观看| 日韩欧美资源站| 精品国产三级电影在线观看| 欧美人牲a欧美精品| 日韩欧美成人一区二区| 欧美成人一级视频| 欧美精品一区二区高清在线观看 | 亚洲欧洲国产日韩| 国产日韩精品久久久| 久久久久久久久久久久电影| 欧美午夜一区二区三区免费大片| 色狠狠色狠狠综合| 91精品国产综合久久福利| 欧美一区国产二区| 久久精品一区二区三区四区| 亚洲国产精品ⅴa在线观看| 国产精品私人影院| 午夜在线成人av| 男女视频一区二区| 久久99国产乱子伦精品免费| 成人亚洲一区二区一| 99久免费精品视频在线观看| 欧美日韩1234| 欧美mv和日韩mv国产网站| 欧美成人三级电影在线| 国产精品沙发午睡系列990531| 亚洲欧洲另类国产综合| 美女视频网站久久| 懂色av噜噜一区二区三区av| 91网址在线看| 久久女同性恋中文字幕| 亚洲三级在线看| 国产高清精品在线| 欧美色窝79yyyycom| 精品免费99久久| 亚洲国产一区视频| 国产一区二区三区蝌蚪| 宅男噜噜噜66一区二区66| 国产三级精品视频| 日韩午夜精品视频| 亚洲午夜久久久久久久久电影院| 美女视频一区二区三区| 欧美日本一道本在线视频| 国产午夜亚洲精品午夜鲁丝片 | 国产在线麻豆精品观看| 狠狠色综合色综合网络| 欧美伦理电影网| 中文字幕在线不卡一区| 国产婷婷一区二区| 舔着乳尖日韩一区| 日本久久电影网| 亚洲欧洲综合另类在线| 欧美精品丝袜中出| 国产日韩在线不卡| 国产成人精品www牛牛影视| 亚洲激情综合网| 色狠狠一区二区| 国产精品无人区| 国产米奇在线777精品观看| 精品国精品国产| 日日摸夜夜添夜夜添精品视频| 午夜视频一区在线观看| 99精品欧美一区二区蜜桃免费| 精品第一国产综合精品aⅴ| 精品无人区卡一卡二卡三乱码免费卡 | 日韩视频免费观看高清完整版 | aaa欧美大片| 欧美精品一区二区不卡| 午夜av区久久| 日韩午夜激情免费电影| 激情五月婷婷综合| 国产网站一区二区三区| 91免费国产在线观看| 亚洲综合色自拍一区| 在线播放一区二区三区| 麻豆精品国产91久久久久久| 精品福利二区三区| 国产91对白在线观看九色| 中文字幕在线观看一区| 在线观看欧美黄色| 青青草97国产精品免费观看 | 免费看黄色91| 国产三级欧美三级| 亚洲一区二区美女| 欧美xxxxxxxx| 色综合色综合色综合色综合色综合| 亚洲乱码国产乱码精品精98午夜 | 色综合久久天天| 日本不卡123| 国产丝袜在线精品| 色婷婷精品大在线视频| 日本午夜一本久久久综合| 久久蜜桃av一区二区天堂| 亚洲免费视频成人| 日韩免费高清av| 日精品一区二区三区| 精品久久人人做人人爰| 91日韩在线专区| 国产一区二区网址| 一区二区三区欧美亚洲| 国产成人免费在线观看不卡| 亚洲码国产岛国毛片在线| 日韩美女在线视频| 91网站视频在线观看| 亚洲国产精品尤物yw在线观看| 欧美不卡视频一区| 欧亚洲嫩模精品一区三区| 国产一区二区三区免费看| 香港成人在线视频| 亚洲四区在线观看| 精品国产乱码久久久久久牛牛| 色狠狠色狠狠综合| 成人av电影在线观看| 韩国三级在线一区| 蜜桃精品在线观看| 亚洲国产sm捆绑调教视频| 成人一级片网址| 国产成人亚洲综合a∨婷婷| 丝袜美腿成人在线| 夜夜揉揉日日人人青青一国产精品 | 国v精品久久久网| 美女视频第一区二区三区免费观看网站| 亚洲精选在线视频| 国产精品全国免费观看高清| 亚洲精品一区二区三区在线观看 | 久久久久综合网| 久久这里只精品最新地址| 3d成人动漫网站| 欧美一区二区三区免费大片|