7.1. 数据类型
本节主要介绍统一SQL支持原生Oracle数据库中的SQL数据类型的对比信息
序号 |
数据类型分类 |
Oracle 数据类型 |
统一SQL |
OceanBase-Oracle 数据类型 |
---|---|---|---|---|
1 |
数字 |
BINARY_FLOAT |
支持 |
BINARY_FLOAT |
2 |
数字 |
BINARY_DOUBLE |
支持 |
BINARY_DOUBLE |
3 |
大对象 |
BFILE |
不支持 |
|
4 |
大对象 |
BLOB |
支持 |
BLOB |
5 |
字符 |
CHAR(n),CHARACTER(n) |
支持 |
CHAR(n),CHARACTER(n) |
6 |
大对象 |
CLOB |
支持 |
CLOB |
7 |
时间&日期 |
DATE |
支持 |
DATE |
8 |
数字 |
DECIMAL(p,s),DEC(p,s) |
支持 |
DECIMAL(p,s),DEC(p,s) |
9 |
数字 |
DOUBLE PRECISION |
不支持 |
|
10 |
数字 |
FLOAT(p) |
支持 |
|
11 |
数字 |
INTEGER,INT |
支持 |
INTEGER,INT |
12 |
时间&日期 |
INTERVAL YEAR(p) TO MONTH |
支持 |
INTERVAL YEAR(p) TO MONTH |
13 |
时间&日期 |
INTERVAL DAY(p) TO SECOND(s) |
支持 |
INTERVAL DAY(p) TO SECOND(s) |
14 |
其他类型 |
LONG |
不支持 |
|
15 |
其他类型 |
LONG RAW |
不支持 |
|
16 |
字符 |
NCHAR(n) |
支持 |
NCHAR(n) |
17 |
字符 |
NCHAR VARYING(n) |
不支持 |
|
18 |
大对象 |
NCLOB |
不支持 |
|
19 |
数字 |
NUMBER(p,s),NUMERIC(p,s) |
支持 |
NUMBER(p,s),NUMERIC(p,s) |
20 |
字符 |
NVARCHAR2(n) |
支持 |
NVARCHAR2(n) |
21 |
其他类型 |
RAW(n) |
支持 |
RAW(n) |
22 |
其他类型 |
REAL |
支持 |
REAL |
23 |
其他类型 |
ROWID |
支持 |
ROWID |
24 |
数字 |
SMALLINT |
支持 |
SMALLINT |
25 |
时间&日期 |
TIMESTAMP(p) |
支持 |
TIMESTAMP(p) |
26 |
时间&日期 |
TIMESTAMP(p) WITH TIME ZONE |
支持 |
TIMESTAMP(p) WITH TIME ZONE |
27 |
时间&日期 |
TIMESTAMP(p) WITH LOCAL TIME ZONE |
支持 |
TIMESTAMP(p) WITH LOCAL TIME ZONE |
28 |
其他类型 |
UROWID(n) |
支持 |
UROWID(n) |
29 |
字符 |
VARCHAR(n) |
支持 |
VARCHAR(n) |
30 |
字符 |
VARCHAR2(n) |
支持 |
VARCHAR2(n) |
31 |
XML类型 |
XMLType |
不支持 |
7.1.1. CHAR(size [BYTE | CHAR])
参数说明
参数 |
说明 |
---|---|
size |
表示指定的固定长度。 |
BYTE |
表示以字节为单位提供列的长度。 |
CHAR |
表示以字符为单位提供列的长度。 |
示例
-- 转换前Oracle SQL:
CREATE TABLE unisql_char_byte_test (col char(10 BYTE));
CREATE TABLE unisql_char_char_test (col char(10 CHAR));
-- 转换后OceanBase-Oracle SQL:
CREATE TABLE unisql_char_byte_test (col char(10 BYTE))
CREATE TABLE unisql_char_char_test (col char(10 CHAR))
7.1.2. VARCHAR2(size [BYTE | CHAR])
参数说明
参数 |
说明 |
---|---|
size |
表示存储的字节数或字符数的长度大小。 |
BYTE |
表示以字节为单位提供列的长度。 VARCHAR2 的默认类型为 BYTE。 |
CHAR |
表示以字符为单位提供列的长度。 |
示例
-- 转换前Oracle SQL:
CREATE TABLE unisql_varchar2_byte_test (col varchar2(10 BYTE));
CREATE TABLE unisql_varchar2_char_test (col varchar2(10 CHAR));
-- 转换后OceanBase-Oracle SQL:
CREATE TABLE unisql_varchar2_byte_test (col varchar2(10 BYTE))
CREATE TABLE unisql_varchar2_char_test (col varchar2(10 CHAR))