回覆列表
  • 1 # 使用者9897441438013

    4000位元組長度。

    比如,varchar2(100),就相當於varchar2(100 byte),表示最大位元組數是100,該欄位最多能容納100個位元組,強調空間大小。

    由於我們描述的是位元組,因此,儲存漢字等字元時,如果資料庫用的是GBK編碼,那麼一個漢字將佔用2個位元組,最多能存50個漢字,如果你的資料庫用的是UTF8編碼,那麼一個漢字將佔用3個位元組,最多能存33個漢字。

    擴充套件資料:

    實際應用中,很可能會出現這種寫法:varchar2(1400char),這個欄位最長不能超過1400個字元,可能會存入1399個字元。

    但是,如果這1399個字元都是漢字,字元長度並沒有超過1400,但實際上損失了一部分資料。

    因為1399個漢字,按UTF8編碼來說,需要佔用1399*3=4197個位元組,而最大長度就是4000位元組,一個也不能多,因此多出來的197個位元組,都會抹去,而整個過程中,無任何錯誤提示。

    對於GBK編碼的資料庫而言,安全的寫法為:varchar2(2000 char)、nvarchar2(2000)。

    對於UTF8編碼的資料庫而言,安全的寫法為:varchar2(1333char)、nvarchar2(2000)。

  • 中秋節和大豐收的關聯?
  • 爺爺去世了,父親也去世了,家裡姑姑來爭奪遺產怎麼辦?