程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 在Oracle 數據類型中如何使用dump函數

在Oracle 數據類型中如何使用dump函數

編輯:Oracle數據庫基礎
以下的文章主要是通過實例,來分析Oralce數據類型。我們以Oracle 10G作為為基礎,本文以介紹Oralce 10g引入的新的數據類型。來引出讓Oracle數據類型的相關實際操作,揭示Oracle 數據類型的相關類型的特點。

字符類型

1.1 char

定長字符串,會用空格來填充來達到其最大長度,最長2000個字節。

1. 新建一個測試表test_char.,只有一個char類型的列。長度為10

SQL> create table test_char(colA char(10));

Table created

2. 向這個表中插入一些數據。

SQL> insert into test_char values('a');

1 row inserted

SQL> insert into test_char values('aa');

1 row inserted

SQL> insert into test_char values('aaa');

1 row inserted

SQL> insert into test_char values('aaaa');

1 row inserted

SQL> insert into test_char values('aaaaaaaaaa');

1 row inserted

注意:最多只能插入10個字節。否是就報錯。

SQL> insert into test_char values('aaaaaaaaaaa');

insert into test_char values('aaaaaaaaaaa')

ORA-12899: value too large for column "PUB_TEST"."TEST_CHAR"."COLA" (actual: 11, maximum: 10)

3.在Oracle 數據類型中使用dump函數可以查看每一行的內部存數結構。

SQL> select colA, dump(colA) from test_char;

COLA DUMP(COLA)

a Typ=96 Len=10: 97,32,32,32,32,32,32,32,32,32

aa Typ=96 Len=10: 97,97,32,32,32,32,32,32,32,32

aaa Typ=96 Len=10: 97,97,97,32,32,32,32,32,32,32

aaaa Typ=96 Len=10: 97,97,97,97,32,32,32,32,32,32

aaaaaaaaaa Typ=96 Len=10: 97,97,97,97,97,97,97,97,97,97

注意:Typ=96 表示數據類型的ID。Oracle為每一種數據類型都進行了編號。說明char類型的編號是96.

Len =10 表示所在的內部存儲的長度(用字節表示)。雖然第一例只存了一個字符’a’,但是它還是占用了10個字節的空間。

97,32,32,32,32,32,32,32,32,32 表示內部存儲方式。可見Oracle的內部存儲是以數據庫字符集進行存儲的。

97正好是字符a的ASCII碼。

可以使用chr函數把ASCII碼轉成字符。

SQL> select chr(97) from dual;

CHR(97)

a

要想知道一個字符的ASCII碼,可以使用函數ascii

SQL> select ascii('a') from dual;

ASCII('A')

97

32正好是空格的ascii碼值。

Char類型是定長類型。它總會以空格來填充以達到一個固定寬度。

使用char類型會浪費存儲空間。

Oracle的數據類型的長度單位是字節。

SQL> select dump('漢') from dual;

DUMP('漢')

Typ=96 Len=2: 186,186

可見一個漢字在Oracle中是占用了兩個字節的。

英文字母或符號只占用一個字節。

Char(10)最多可存放5個漢字。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved