婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 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存儲過程創建表分區實例的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    中文字幕不卡在线| zzijzzij亚洲日本少妇熟睡| 精品va天堂亚洲国产| 欧美日韩久久一区二区| 欧美日韩视频不卡| 亚洲国产视频网站| 免费观看一级欧美片| 免费欧美在线视频| 国产不卡视频在线观看| 亚洲免费观看高清完整版在线 | 99re视频精品| 5858s免费视频成人| 国产日韩高清在线| 亚洲国产日产av| 国产精一品亚洲二区在线视频| 久久久久久一二三区| 亚洲精品日韩综合观看成人91| 五月天激情综合网| 国产高清视频一区| 成人黄色一级视频| 日韩在线一二三区| av在线不卡免费看| 精品国产精品网麻豆系列| 亚洲精品福利视频网站| 在线观看欧美精品| 国产午夜三级一区二区三| 亚洲电影你懂得| 99久久亚洲一区二区三区青草| 怡红院av一区二区三区| 国产尤物一区二区| 欧美精品第一页| 亚洲欧美日韩国产手机在线| 成人网页在线观看| 久久影院午夜片一区| 色哟哟一区二区在线观看| 91精品久久久久久久91蜜桃| 亚洲精品乱码久久久久久黑人| 国产一区欧美二区| 色婷婷亚洲婷婷| 亚洲色图色小说| 岛国av在线一区| 久久久电影一区二区三区| 精品国产乱码久久| 4438x亚洲最大成人网| 亚洲一区二区偷拍精品| 色狠狠色狠狠综合| 自拍偷在线精品自拍偷无码专区| 欧美日韩国产首页| 亚洲综合免费观看高清在线观看| 成人免费的视频| 欧美极品aⅴ影院| 久久国产精品露脸对白| 欧美精品一区二区三区视频| 免费人成黄页网站在线一区二区| 欧美一区二区美女| 精品一区二区三区在线观看国产| 亚洲成av人片在线观看| 欧美伦理影视网| 免费成人你懂的| 精品国产免费人成电影在线观看四季| 国产亚洲一区二区三区在线观看| 国产成人av一区| 一区免费观看视频| 一本久久a久久免费精品不卡| 欧美三级在线视频| 91麻豆精东视频| 无码av免费一区二区三区试看| 欧美精品电影在线播放| 黄色小说综合网站| 久久 天天综合| 中文字幕一区二区三区视频| 91天堂素人约啪| 午夜视频在线观看一区| 亚洲 欧美综合在线网络| 一区二区三区不卡视频在线观看| 日本视频在线一区| 久久久777精品电影网影网| 午夜激情一区二区三区| 亚洲国产成人精品视频| 欧美tk—视频vk| 成人激情小说网站| 丝袜亚洲另类欧美综合| 久久精品欧美日韩| 精品视频一区二区三区免费| 免费成人你懂的| 欧美日韩精品一区二区天天拍小说| 国产v日产∨综合v精品视频| 亚洲成人免费视频| 2023国产精华国产精品| 美国毛片一区二区三区| 国产成人在线影院| 日韩精品一级中文字幕精品视频免费观看 | 婷婷国产在线综合| 久久精品欧美日韩| 5566中文字幕一区二区电影| 99视频在线精品| 在线免费观看日本欧美| 成人一区二区视频| 三级影片在线观看欧美日韩一区二区| 久久在线免费观看| 777久久久精品| 国产精品久久看| 国产视频一区二区三区在线观看| 欧美日韩视频在线一区二区| 色婷婷综合视频在线观看| 国产精品小仙女| 久久精品国产999大香线蕉| 宅男噜噜噜66一区二区66| 99精品国产热久久91蜜凸| 狠狠色狠狠色综合| ...xxx性欧美| 国产一区二区三区香蕉| 久久精品国产在热久久| 日韩激情一二三区| 日韩中文字幕亚洲一区二区va在线| 综合色天天鬼久久鬼色| 1024成人网色www| 亚洲日本va午夜在线影院| 日本一区二区成人| 精久久久久久久久久久| 韩国欧美国产1区| 九九**精品视频免费播放| 日本亚洲天堂网| 色哟哟在线观看一区二区三区| 色av一区二区| 在线观看一区二区视频| 色先锋资源久久综合| 色系网站成人免费| 欧美日韩一区二区三区四区五区 | 欧美成人官网二区| 精品少妇一区二区| 欧美在线观看你懂的| 欧美体内she精视频| 欧洲日韩一区二区三区| 蜜臀91精品一区二区三区| 91在线观看地址| 一本一道久久a久久精品综合蜜臀| 91社区在线播放| 美女mm1313爽爽久久久蜜臀| 欧美精品第1页| 久久免费精品国产久精品久久久久 | 成人在线一区二区三区| 国产精品原创巨作av| 99国产精品视频免费观看| 欧美日韩在线播| 久久综合色婷婷| 亚洲精品成a人| 精品国产乱码久久久久久牛牛 | 国产精品情趣视频| 国产伦精品一区二区三区在线观看| 精品捆绑美女sm三区| 国产麻豆视频一区| 国产日韩欧美一区二区三区乱码 | 蜜桃视频在线一区| 2欧美一区二区三区在线观看视频| 国产精品18久久久久久久久 | 国产精品嫩草影院av蜜臀| av高清久久久| 亚洲成人777| 26uuu色噜噜精品一区| 99re成人精品视频| 亚洲福利视频三区| 精品国产乱码久久久久久闺蜜| 国产不卡视频一区二区三区| 国产精品福利一区二区三区| 在线观看日韩电影| 国内外成人在线| 亚洲精品高清视频在线观看| 欧美一级在线免费| 成人国产亚洲欧美成人综合网| 天天综合天天综合色| 国产精品丝袜黑色高跟| 欧美影视一区在线| 久久99久久久欧美国产| 国产精品国产精品国产专区不片| 欧美综合视频在线观看| 精品亚洲国产成人av制服丝袜 | 国产成人免费视频网站| 国产精品成人网| 欧美精品精品一区| 国产综合色视频| 国产精品美女视频| 欧美成人女星排名| 成人高清免费在线播放| 久久不见久久见免费视频7| 伊人一区二区三区| 日韩视频不卡中文| 一本高清dvd不卡在线观看| 国产凹凸在线观看一区二区| 亚欧色一区w666天堂| 国产精品麻豆久久久| 国产视频在线观看一区二区三区| 色婷婷综合久久久中文字幕| 高清不卡一区二区| 激情成人午夜视频| 日本成人在线一区| 午夜精品123| 午夜欧美大尺度福利影院在线看| 中文字幕一区免费在线观看| 久久久精品黄色|