【ORACLE】oracle字串對象的處理,oracle字串對象

來源:互聯網
上載者:User

【ORACLE】oracle字串對象的處理,oracle字串對象

2.1 char欄位,varchar2欄位

(1)定義欄位長度char(10)表示欄位可以存放10個英文字元(不管任何編碼方式,英文字元都佔10個位元組嗎?),且分配物理空間的時候,總是分配10個字元的位置。定義可變長varchar(10)表示最多可以存放10個英文字元,且分配物理空間的是,根據實際欄位的資料,分配實際的空間

(2)char和varchar2的最長欄位類型長度

         Char(2000),varchar2(4000)

(3)varchar欄位的中文問題。

   定義欄位為varchar(2),插入中文字元”你好”是插不進去的。因為”你好”佔用的空間,超過了最大的空間兩個英文字元空間

  一個英文字元佔用幾個位元組,一個中文字元佔用幾個位元組,要看字元的編碼規則。

  查看編碼的函數為:

         select userenv('language') from dual;

      設計表的時候,一般按照中文字元數量的三倍來設計varchar2欄位的容量。

(4)nvarchar類型

            Nvarchar2類型解決varchar2類型的中文問題,nvarchar(2),不管中文字元,還是英文字元都能最多隻能存放兩個字元。

2.2 字元的處理函數

(1)trim,ltrim,rtrim去除字串頭或尾的空格

(2)lpad,rpad函數預設按照空格,前或者後填充到一定長度

         例如,

select lpad(lname,50,'*') from foo_6;

select lpad(lname,50) from foo_6;

(1)     利用substr()函數擷取第n字元後面的所有字元(oracle中字元下標從1開始計算)

Substr(lname,3);

        可以定義擷取字元的長度5,

例如

         Substr(lname,3,5)

(2)     substr起始位置下標,可以為負數,表示從後面往前數的位置,取字串還是往後取。

例如,

        Substr(lname,-5)表示取最後的五個字元。

(3)     instr函數找到字元的下標位置

insrt(lname,’尋找字元’,起始位置)

可以尋找第幾次出現的位置,

例如

Insr(lname,’查看字元’,起始位置,第幾次出現)

(4)     length函數擷取字元的個數

length(“你好”) length(‘ab’)返回值都是2,表示兩個字元,字元下標最大為2,不表示佔用的位元組數量。

3 oracle數字對象

 Number(10)有效數字為10

 Number(10,2)有效數字為10,含2位小數

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.