首页 > 数据库 > 国内数据库 > YashanDB RAW类型数据
YashanDB中的RAW类型是一种与VARCHAR类似的可变长度数据类型,可以表述二进制数据或者字节字符串。
在定义表时,可以使用RAW类型声明一个列字段,通常被用于存储图形、声音、文档或二进制数据数组等内容,具体解释取决于使用情况。
| 类型 | 字节长度 |
|---|---|
| RAW | 1~8000 |
定义格式:
| 类型 | 格式 | 规则 |
|---|---|---|
| RAW | RAW(Size) | 变长二进制串,当插入的字符串小于Size时不会发生补0x00的行为。 |
Size:宽度,表示最大字节长度。
对于RAW类型数据的使用限制如下:
YashanDB支持RAW和字符型的数据类型转换,包括显式转换和隐式转换。
YashanDB支持RAW和BLOB/ROWID/UROWID/JSON的数据类型转换,支持RAW往CLOB的单向数据类型转换。
显式转换
用户可使用CAST、TO_CHAR等内置函数进行RAW和字符型之间的数据类型转换。
示例
隐式转换
1.字符型向RAW类型隐式转换:
系统将连续输入的每个字符解析为二进制数据中四个连续位的十六进制表述,并将其连接后构建RAW类型数据。
输入的字符串中包含不属于十六进制表述范围(0-9、a-f、A-F)的字符时,系统报错。
如果输入字符串数量为奇数,系统将先补充4个都是0的连续位,然后再将字符串转换为RAW类型数据。
当插入或更新一个RAW列字段时,如果输入字符串的字节长度超过RAW列宽度的2倍,系统报错。
示例(HEAP表)
2.RAW类型向字符型隐式转换:
系统将RAW类型数据作为以二进制输入的十六进制表述,转换为字符,其中每个字符是一个十六进制数字(0-9、a-F、a-F),表示四个连续的原始数据位。例如,将位为10101011的原始数据的一个字节做为十六进制值AB,并转换为字符串'AB'。
示例(HEAP表)
3.RAW类型向BLOB类型隐式转换:
因为RAW类型和BLOB类型都可用于存储二进制对象,所以系统可以将RAW数据直接转换为BLOB数据。
示例(HEAP表)
4.BLOB类型向RAW类型隐式转换:
在BLOB数据字节长度不超过32000字节的情况下,BLOB数据可以被转换成RAW数据。
示例(HEAP表)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3079243/ ,如需转载,请注明出处,否则将追究法律责任。