6.1. 数据类型
本节主要介绍统一SQL支持原生Oracle数据库中的SQL数据类型的对比信息
序号 |
数据类型分类 |
Oracle 数据类型 |
统一SQL |
OceanBase-MySQL数据类型 |
---|---|---|---|---|
1 |
数字 |
BINARY_FLOAT |
支持 |
FLOAT |
2 |
数字 |
BINARY_DOUBLE |
支持 |
DOUBLE |
3 |
大对象 |
BFILE |
不支持 |
|
4 |
大对象 |
BLOB |
支持 |
LONGBLOB |
5 |
字符 |
CHAR(n),CHARACTER(n) |
支持 |
CHAR(n) |
6 |
大对象 |
CLOB |
支持 |
LONGTEXT |
7 |
时间&日期 |
DATE |
支持 |
DATETIME |
8 |
数字 |
DECIMAL(p,s),DEC(p,s) |
支持 |
DECIMAL(p,s) |
9 |
数字 |
DOUBLE PRECISION |
支持 |
DOUBLE |
10 |
数字 |
FLOAT(p) |
支持 |
FLOAT(p) |
11 |
数字 |
INTEGER,INT |
支持 |
BIGINT |
12 |
时间&日期 |
INTERVAL YEAR(p) TO MONTH |
不支持 |
|
13 |
时间&日期 |
INTERVAL DAY(p) TO SECOND(s) |
不支持 |
|
14 |
其他类型 |
LONG |
支持 |
MEDIUMTEXT |
15 |
其他类型 |
LONG RAW |
支持 |
LONGBLOB |
16 |
字符 |
NCHAR(n) |
支持 |
NCHAR(n) |
17 |
字符 |
NCHAR VARYING(n) |
支持 |
NVARCHAR(n) |
18 |
大对象 |
NCLOB |
支持 |
LONGTEXT |
19 |
数字 |
NUMBER(p,s),NUMERIC(p,s) |
支持 |
DECIMAL(p,s) |
20 |
字符 |
NVARCHAR2(n) |
支持 |
NVARCHAR(n) |
21 |
其他类型 |
RAW(n) |
支持 |
VARBINARY(n) |
22 |
其他类型 |
REAL |
支持 |
REAL |
23 |
其他类型 |
ROWID |
不支持 |
|
24 |
数字 |
SMALLINT |
支持 |
BIGINT |
25 |
时间&日期 |
TIMESTAMP(p) |
支持 |
TIMESTAMP(p) |
26 |
时间&日期 |
TIMESTAMP(p) WITH TIME ZONE |
支持 |
TIMESTAMP(p) |
27 |
时间&日期 |
TIMESTAMP(p) WITH LOCAL TIME ZONE |
不支持 |
|
28 |
其他类型 |
UROWID(n) |
不支持 |
|
29 |
字符 |
VARCHAR(n) |
支持 |
VARCHAR(n) |
30 |
字符 |
VARCHAR2(n) |
支持 |
VARCHAR(n) |
31 |
XML类型 |
XMLType |
不支持 |
6.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-MySQL:
CREATE TABLE `unisql_char_byte_test` (`col` char(10))
CREATE TABLE `unisql_char_char_test` (`col` char(10))
6.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-MySQL:
CREATE TABLE `unisql_varchar2_byte_test` (`col` varchar(10))
CREATE TABLE `unisql_varchar2_char_test` (`col` varchar(10))