学习SAP HANA 数据类型:
SAP HANA Reference: DATA TYPES http://help.sap.com/hana/html/_csql_data_types.html
Classification | Data Type |
---|---|
Datetime types | DATE, TIME, SECONDDATE, TIMESTAMP |
Numeric types | TINYINT, SMALLINT, INTEGER, BIGINT, SMALLDECIMAL, DECIMAL, REAL, DOUBLE |
Character string types | VARCHAR, NVARCHAR, ALPHANUM, SHORTTEXT |
Binary types | VARBINARY |
Large Object types | BLOB, CLOB, NCLOB, TEXT |
Datetime 类型:
Date类型:由年月日组成:,默认的保存格式是YYYY-MM-DD,取值范围:0001-01-01 到 9999-12-31
time 类型:由时分秒组成,,默认保存格式是HH24:MI:SS,取值范围:0-24:0-59:0-59
SECONDDATE类型:由年月日时分秒组成,默认保存格式YYYY-MM-DD HH24:MI:SS.FF7,取值范围: 0001-01-01 00:00:01 到 9999-12-31 24:00:00
TIMESTAMP类型:由年月日时分秒微秒组成,默认保存格式YYYY-MM-DD HH24:MI:SS.FF7,取值范围: 0001-01-01 00:00:00.0000000 到 9999-12-31 23:59:59.9999999
字符串类型:(Character String Types)
VARCHAR:VARCHAR(n),保存ASCII可变长度的字符串,字符串长度范围1 到 5000。
NVARCHAR:NVARCHAR(n),保存Unicode可变长度的字符集字符串,字符串长度范围1 到 5000。
ALPHANUM:ALPHANUM(n)字母与数字符号构成的字符串,字符串长度范围1 到 127
SHORTTEXT
二进制 类型( Binary Type):
VARBINARY: 用来存储字节的二进制数据。长度是范围是1到5000
大对象类型(Large Object (LOB) Types):
BLOB:用来存储大的二进制数据。
CLOB:用来存储大的ASCII字符数据。
NCLOB:用来存储大的Unicode字符对象
TEXT:
使用大对象类型的列有如下限制:
1. 不能出现在ORDER BY 或者 GROUP BY里面。
2. 不能成为from join的对象。
3. 不能出现在SELECT DISTINCT
4. 不能作为主键。
5.不能在列上创建索引CREATE INDEX。
6.
SQL 数据类型和列存储的数据类型之间的映射关系:Mapping between SQL Data Type and Column Store Data Type
SAP HANA的数据类型(SAP HANA DATA Type)
一、字符型(Character string types)
数据类型 最大长度 说明
CHAR(size) 2000byte 固定长度字符串size表示存储的字符集长度
VARCHAR(size) 5000byte 可变长度字符串,size表示存储的字符串长
VARCHAR2(size) 5000byte 等同于VARCHAR,不属于保留关键值为oralce数据类型,在HANA中可以直接使用不报语法错误,执行后保存为VARCHAR.
CHAR(size) 2000byte 固定Unicode字符串size表示存储字符串长度
NVARCHAR(size) 5000byte 可变Unicode字符串size表示存储字符串长
ALPHANUM(size) 127byte 字母数字可变长度字符串,
SHORTTEXT(size) 短文本类型,一中支持文本搜索和字符串搜索特性的可变长度字符串,只能是在列存储表中使用,行存储表中不行。
练习:
行表:
Create table Test_Char_Type(
TEST_CHAR CHAR(20),
TEST_VARCHAR VARCHAR(50),
TEST_VARCHAR2 VARCHAR2(50),
TEST_NCHAR NCHAR(20),
TEST_NVARCHAR NVARCHAR(50),
TEST_ALPHANUM ALPHANUM(20)
);
1、创建行表如果使用SHORTTEXT类型的错误信息:
SAP DBTech JDBC: [264] (at 206): invalid datatype: SHORTTEXT
2、定义字符串长度超出最大长度错误信息:
SAP DBTech JDBC: [267] (at 176): specified length too long for its datatype
列表:
Create Column table Test_Column_Char_Type(
TEST_CHAR CHAR(20),
TEST_VARCHAR VARCHAR(50),
TEST_VARCHAR2 VARCHAR2(50),
TEST_NCHAR NCHAR(20),
TEST_NVARCHAR NVARCHAR(50),
TEST_ALPHANUM ALPHANUM(20),
TEST_SHORTTEXT SHORTTEXT(10000)
);
二、数值型(Numeric Types)
TINYINT
SMALLINT
INTEGER
BIGINT
SMALLDECIMAL
DECIMAL
REAL
DOUBLE
三、日期\时间型(Datetime Types)
DATE
TIME
SECONDDATE
TIMESTAMP
四、二进制类型(Binary Types)
VARBINARY
五、大对象类型(Big Object Types)
BLOB
CLOB
NCLOB
TEXT