本文為您介紹遷移 Oracle 資料庫的資料至 OceanBase 資料庫 Oracle 租戶的資料類型轉換。
支援的轉換類型
Oracle 資料庫 | OceanBase 資料庫 Oracle 租戶 | 描述 |
INTEGER | NUMBER(38,0) | |
INT | NUMBER(38,0) | |
SMALLINT | NUMBER(38,0) | |
BINARY_FLOAT | BINARY_FLOAT | 二進位精度浮點數,是一種 32 位單精確度浮點數資料類型。Oracle 資料庫和 OceanBase 資料庫 Oracle 租戶一致。 |
BINARY_DOUBLE | BINARY_DOUBLE | 二進位精度浮點數,是一種 64 位元雙精確度浮點數資料類型。Oracle 資料庫和 OceanBase 資料庫 Oracle 租戶一致。 |
DECIMAL(p,s) | NUMBER(p,s) | |
DEC(p,s) | NUMBER(p,s) | |
NUMERIC(p,s) | NUMBER(p,s) | |
REAL(p,s) | NUMBER(p,s) | |
FLOAT (p) | FLOAT (p) | NUMBER 資料類型的子類型。二進位精度範圍為 [1,126]。FLOAT 不是浮點數。 Oracle 資料庫和 OceanBase 資料庫 Oracle 租戶一致。 |
NUMBER[(p,s)] | NUMBER(p,s) | OceanBase 資料庫 Oracle 租戶:儲存變長、十進位精度的定點數。也可以儲存浮點數,此時 NUMBER 沒有 p 和 s 參數。 Oracle 資料庫:p 的取值範圍為 1 ~ 38,s 的取值範圍為 -84 ~ 127。 |
NCHAR(size) | NCHAR(size) | 參數 size 的取值範圍為 [1,2000],預設值和最小值為 1。儲存大小為 size 位元組的兩倍。 |
CHAR (size [BYTE | CHAR]) | CHAR (size [BYTE | CHAR]) | 參數 size 的取值範圍為 [1,2000],預設值和最小值為 1。儲存大小為 size 個位元組或字元。 |
CHARACTER(n) | CHAR(n) | |
NVARCHAR2(size) | NVARCHAR2(size) | 參數 size 的取值範圍為 [1,32767]。位元組的儲存大小是所輸入字元個數的兩倍。 |
VARCHAR2(size [BYTE | CHAR]) | VARCHAR2(size [BYTE | CHAR]) | 參數 size 的取值範圍為 [1,32767]。儲存大小為輸入資料的位元組或字元的實際長度,而不是 size 個位元組或字元。 |
VARCHAR(size) | VARCHAR2(size) | |
RAW(size) | RAW(size) | OceanBase 資料庫 Oracle 租戶:以位元組為單位。如果作為資料庫中表的列,該參數最大支援儲存 2000 位元組的資料。如果作為 PL 變數,該參數最大支援儲存 32767 位元組的資料。 Oracle 資料庫:最大支援 2000 位元組 |
LONG | CLOB | OceanBase 資料庫 Oracle 租戶:48 MB Oracle 資料庫:LONG 4GB -1 |
LONG RAW | BLOB | OceanBase 資料庫 Oracle 租戶:48 MB Oracle 資料庫: LONGRAW Size up to 2 gigabytes |
ROWID | ROWID | 表中一行的唯一地址(以 64 為基數的字串表示)。 |
UROWID | UROWID | 索引組織表的行(以 64 為基數的字串表示)的邏輯地址。 |
TIMESTAMP (fractional_seconds_precision) | TIMESTAMP (fractional_seconds_precision) | OceanBase 資料庫 Oracle 租戶:範圍和精確度取決於 scale 的值,取值範圍為 [0,9]。最大值為 9(納秒,即秒數精確至小數點 9 位),最小值為 0(秒,即秒數精確至小數點 0 位),預設值為 6。 Oracle 資料庫:大小為 7 或 11 位元組,取決於精度。 |
TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE | TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE | OceanBase 資料庫 Oracle 租戶:閾值和精確度取決於 scale 的值,取值範圍為 [0,9]。最大值為 9 (納秒,即秒數精確至小數點 9 位),最小值為 0(秒,即秒數精確至小數點 0 位),預設值為 6。 Oracle 資料庫:大小固定為13位元組。 |
TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE | TIMESTAMP[(fractional_seconds_precision)] WITH LOCAL TIME ZONE | |
DATE | DATE | OceanBase 資料庫 Oracle 租戶:取值範圍為 0001-01-01 00:00:00~9999-12-31 23:59:59。 Oracle 資料庫:有效日期範圍:從公元前 4712 年 1 月 1 日到公元 9999 年 12 月 31 日。大小固定為 7 位元組。 |
INTERVAL YEAR [(year_precision)] TO MONTH | INTERVAL YEAR [(year_precision)] TO MONTH | 5 bytes |
INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds_precision)] | INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds_precision)] | 11 bytes |
BLOB | BLOB | |
CLOB | CLOB | |
NCLOB | CLOB |
不支援的轉換類型
Oracle 資料庫 | OceanBase 資料庫 Oracle 租戶 |
TIMESTAMP_UNCONSTRAINED | - |
TIMESTAMP_TZ_UNCONSTRAINED | - |
TIMESTAMP_LTZ_UNCONSTRAINED | - |
YMINTERVAL_UNCONSTRAINED | - |
DSINTERVAL_UNCONSTRAINED | - |
YEAR | - |
MONTH | - |
DAY | - |
HOUR | - |
MINUTE | - |
SECOND | - |
TIMEZONE_HOUR | - |
TIMEZONE_MINUTE | - |
TIMEZONE_REGION | - |
TIMEZONE_ABBR | - |