kingbase字元類資料型別和oracle字元型別的區別
阿新 • • 發佈:2021-11-03
為相容Oracle的資料型別,KingbaseES擴充套件了Oracle的NUMBER、VARCHAR2、CHAR(n)和DATE型別。該措施使得移植Oracle的Create Table等DDL語句時,無需任何修改就能直接在KingbaseES環境中執行。
KingbaseES雖然擴充套件了oracle的字元型別,但是相同資料型別之間仍舊存在些許區別:
資料型別 | KingbaseES | Oracle |
CHARACTER(n)
CHAR(n) NCHAR(n) |
char表示一個字元
Byte表示一個位元組 預設為1 值域:10485760 char | byte。 |
值域:11g 預設值1 |
CHARACTER VARYING(n) NVARCHAR(n)
NVARCHAR2(n) VARCHAR(n) VARCHAR2(n) |
值域:10485760 char | byte。 預設長度:可以不指定,預設沒有限制。 | 值域:11g
VARCHAR2=4000 char|byte NVARCHAR2=4000 byte 預設長度:VARCHAR2必須指定長度 12c最大支援到32k(32767) |
下面通過一些例子來驗證:
1.資料型別的最大長度
- Oracle11g
- KingbaseES
test=# create table k_test1(name char(10485761));
錯誤:型別 char 的長度不能超過 10485760
2.預設值
- Oracle
- KingbaseES
3.插入資料庫的時候,字元數超出最大長度部分的處理
- Oracle
- KingbaseES