Jcat
          寵辱不驚,閑看庭前花開花落~~
          posts - 173,comments - 67,trackbacks - 0
          --創建一個分區表
          create table scott.testpart
          (
          ?? ?TEXTDATE?? VARCHAR2(8)
          )
          partition by range ( TEXTDATE )
          (
          ?? ? partition p1 values less than ('20090201'),
          ??? ?partition "p2" values less than ('20090301'), --注意這里的雙引號
          ?? ? partition pm values less than (MAXVALUE) ?
          )


          --插入一些數據(順便實踐一下雙層循環)

          DECLARE
          ?? ?i int:=1;
          ?? ?j int:=1;
          BEGIN
          ? ??? ?WHILE i<=3 LOOP
          ?? ??? ???? WHILE j<=3 LOOP
          ?? ??? ??? ???? insert into scott.testpart values (2009*10000+i*100+j);
          ???? ??? ??? ?? j:=j+1;
          ?? ??? ???? END LOOP;???? ??? ?
          ?? ???? i:=i+1;?? ?
          ?? ???? j:=1; --注意要重置j,否則就回不到j循環里面了
          ?? ???? END LOOP;
          END;


          --需要先進行分析,否則num_rows列將為空
          analyze table scott.testpart compute statistics;

          --查看各個分區的情況
          select table_name, partition_name, num_rows from DBA_TAB_PARTITIONS
          where table_owner='SCOTT' and table_name='TESTPART';
          TABLE_NAME??????????????? PARTITION_NAME?????????? NUM_ROWS
          -------------------------- ------------------------------ ----------
          TESTPART?????????????????????? P1?????????????????????????????????? ? ?? ?? ?? 3
          TESTPART?????????????????????? PM????????????????????????????????? ? ? ?? ?? 3
          TESTPART?????????????????????? p2?????????????????????????????????????? ? ? ? 3
          注意p2因為加了引號仍然是小寫(但并不顯示引號,這點比較討厭),沒加引號的會顯示為大寫


          --驗證數據確實進入了正確的分區
          select * from scott.testpart partition(p1);
          TEXTDATE
          --------
          20090101
          20090102
          20090103

          --創建p2時有引號,使用p2時也就需要引號。
          --特別的,用一些第三方客戶端創建分區表時,生成的SQL往往會自動加上引號,而查看DBA_TAB_PARTITIONS時又看不出來,所以遇到下面的問題,可以加個引號試試。
          select * from scott.testpart partition(p2);
          ERROR at line 1:
          ORA-02149: Specified partition does not exist

          select * from scott.testpart partition("p2");
          TEXTDATE
          --------
          20090201
          20090202
          20090203


          --其它相關
          select * from scott.testpart;
          truncate table scott.testpart;
          drop table scott.testpart;

          posted on 2009-08-18 18:17 Jcat 閱讀(266) 評論(0)  編輯  收藏 所屬分類: Database
          主站蜘蛛池模板: 长宁县| 磐石市| 临夏市| 高尔夫| 赣榆县| 汝州市| 义乌市| 拉萨市| 嘉荫县| 海伦市| 宜兴市| 河东区| 鸡东县| 界首市| 杭锦后旗| 宁河县| 那坡县| 宁城县| 施秉县| 鄂州市| 曲沃县| 云南省| 叙永县| 大同县| 施秉县| 岗巴县| 凉城县| 延吉市| 宝兴县| 宝应县| 竹溪县| 商洛市| 克拉玛依市| 城固县| 扶风县| 民乐县| 镶黄旗| 互助| 瓮安县| 宜城市| 隆化县|