RM新时代国际平台

  • <div id="r605l"></div>
      1. <th id="r605l"></th>
      2. Oracle 分區(qū)表的 FOR 語句,你這樣用過嗎?

        作者:楊廷琨

        原文鏈接:

        https://www.modb.pro/db/15418

        在11g以后,Oracle簡化了指定分區(qū)的方式,不再需要明確指定分區(qū)名稱,而是可以通過指定分區(qū)鍵值列數(shù)據(jù)的方式來指向?qū)?yīng)的分區(qū)。

        指定一個(gè)分區(qū)除了使用分區(qū)名稱外,很多時(shí)候還可以使用FOR語句。從11g開始,對分區(qū)進(jìn)行操作的時(shí)候,不僅可以使用分區(qū)名稱,還可以使用FOR語句。

        在10g中,MERGE RANGE分區(qū)的語句如下:

        而在11g中,除了使用分區(qū)名稱外,還可以使用FOR語句來代替,比如:

        這種語法的優(yōu)勢對于范圍分區(qū)還不是很明顯,而對于INTERVAL分區(qū)就十分有意義了。由于INTERVAL分區(qū)的分區(qū)名稱是系統(tǒng)產(chǎn)生的,用戶對INTERVAL分區(qū)最直觀的莫過于存在分區(qū)中的數(shù)據(jù)的范圍,根據(jù)分區(qū)的定義和INTERVAL的設(shè)置很容易可以確定分區(qū)的范圍和其中的數(shù)據(jù),但是分區(qū)的名稱就必須通過數(shù)據(jù)字典才能查詢得到。

        一個(gè)INTERVAL分區(qū)的簡單的例子:

        繼續(xù)上面的例子:

        下面打算通過FOR語句的方式合并P2和P3分區(qū):

        根據(jù)錯(cuò)誤文檔的描述,感覺是分區(qū)鍵值指定出現(xiàn)了錯(cuò)誤,查詢分區(qū)信息:

        難道是分區(qū)鍵值指定有問題:

        最終發(fā)現(xiàn)了問題所在,F(xiàn)OR語句中指定的并不是分區(qū)定義時(shí)使用的值,而是存儲在當(dāng)前分區(qū)中的值:

        因此Oracle并非根據(jù)分區(qū)定義來判斷分區(qū),而是根據(jù)用戶給出的值,來判斷所屬分區(qū),所以,P1分區(qū)和SYS_P78分區(qū)的合并完全可以寫成:

        由于FOR語句的這種特性,使得HASH分區(qū)也可以使用這個(gè)特性:

        這個(gè)例子對包含ID為6的分區(qū)進(jìn)行了MOVE操作,而且甚至不需要指定的ID存在。

        最后給一個(gè)簡單的LIST分區(qū)的SPLIT的例子:

        想了解更多關(guān)于數(shù)據(jù)庫、云技術(shù)的內(nèi)容嗎?

        快來關(guān)注“數(shù)據(jù)和云"、"云和恩墨,"公眾號及"云和恩墨"官方網(wǎng)站,我們期待大家一同學(xué)習(xí)與進(jìn)步!

        小程序”DBASK“在線問答,隨時(shí)解惑,歡迎了解和關(guān)注!


        下一篇:Oracle 發(fā)力 MySQL,MariaDB 成功上市,大規(guī)模融資銳減
        RM新时代国际平台
      3. <div id="r605l"></div>
          1. <th id="r605l"></th>
          2. <div id="r605l"></div>
              1. <th id="r605l"></th>
              2. 新时代RM|国际平台 新时代软件下载 RM新时代官网网址 rm新时代是正规平台 新时代rm平台入口