国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Oracle - oracle存儲(chǔ)過程創(chuàng)建表分區(qū)實(shí)例

oracle存儲(chǔ)過程創(chuàng)建表分區(qū)實(shí)例

2019-12-02 15:51oracle教程網(wǎng) Oracle

二種oracle存儲(chǔ)過程創(chuàng)建表分區(qū)實(shí)例

用存儲(chǔ)過程創(chuàng)建數(shù)據(jù)表:
創(chuàng)建時(shí)注意必須添加authid current_user,如果創(chuàng)建的表已存在,存儲(chǔ)過程繼續(xù)執(zhí)行,但如不不加此關(guān)鍵語句,存儲(chǔ)過程將出現(xiàn)異常,
這個(gè)語句相當(dāng)于賦權(quán)限。
例1
創(chuàng)建語句如下:

復(fù)制代碼代碼如下:

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

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

入?yún)⒊鰠⒚枋觯?nbsp;
i_id 測(cè)點(diǎn)編號(hào) 
**********************************/ 
      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  --如果沒有這個(gè)表 則去創(chuàng)建 
         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; 


調(diào)用此存儲(chǔ)過程:

復(fù)制代碼代碼如下:

begin
  createmnl('mnl_14');
  end;


例2

復(fù)制代碼代碼如下:

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); --分區(qū)名標(biāo)識(shí) 
  v_SqlCursor       NUMBER; --游標(biāo) 
  v_SqlExec         VARCHAR2(2000); --執(zhí)行語句 
  v_PartPreDate     VARCHAR2(20); --分區(qū)日期 
  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'; 
  -- 讀取配置參數(shù) 
  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; 
  --記錄存儲(chǔ)過程添加分區(qū) 
  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 添加分區(qū) 
    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 添加分區(qū) 
    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 添加分區(qū) 
    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;
 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美一区永久视频免费观看 | 午夜网址| 日韩在线字幕 | 欧美一级视频 | 亚洲伦理| 日本乱码视频 | 精品国产999 | 国产一区二区免费视频 | www.中文字幕 | 激情五月综合网 | 中文字幕在线观看一区二区三区 | 香蕉yeye凹凸一区二区三区 | 亚洲福利社区 | 国产精品久久久久久久久久妞妞 | 免费观看www免费观看 | 一级毛片免费完整视频 | 日韩a电影 | 国产视频久久久久久久 | 国产免费色 | 亚洲专区欧美 | 黄色一级片在线观看 | 亚洲一区二区三区在线播放 | 国产精品久久久久久久久久久久冷 | 综合久 | 国产午夜久久 | 国产精品一区二区三区免费 | 欧美激情视频一区二区三区在线播放 | 欧洲一区二区在线观看 | 日本在线观看一区 | 欧美日韩不卡在线 | 中文字幕在线观看一区二区三区 | 在线日韩视频 | 可以免费在线观看av的网站 | 午夜精品久久久久久久久 | 毛片在线免费播放 | 亚洲成人精品一区 | 日韩精品一区二区三区四区五区 | 一区二区三区四区视频 | 免费a级毛片大学生免费观看 | 成人网在线看 | 成人福利视频 |