大对象数据类型
📄字数 768
👁️阅读量 加载中...
XuguDB 支持的大对象数据类型按保存的数据形式划分,可分为两类:
- 二进制大对象类型(BLOB)
- 文本大对象类型(CLOB)
相关信息对比见下表:
数据类型 | 长度最大值 | 存储方式 | 数据形式 |
---|---|---|---|
BLOB | 2GB | 可变长度 | 二进制形式数据 |
CLOB | 2GB | 可变长度 | 字符形式文本数据 |
大对象数据类型最大支持2GB存储,单表支持多个大对象字段定义,其中BLOB类型保存二进制数据,CLOB类型保存文本数据;
未超过512字节则存储在行内,超过512字节则存储在行外,可通过LENGTH函数查询大对象字段长度,由此判断大对象是否存储在行外。
BLOB类型
BLOB 即 Binary Large Object,存储非结构化二进制文件,没有字符集语义的比特流,不涉及字符编码转换,一般是图像、声音、视频等文件。
- 示例1
创建含BLOB类型字段表,并演示使用控制台方式插入数据。
sql
SQL> CREATE TABLE tab_blob(col_1 BLOB);
SQL> INSERT INTO tab_blob VALUES(?); <# C:\t1.png;
--查询数据(二进制数据直接查询不显示具体内容)
SQL> SELECT * FROM tab_blob;
+--------+
| COL_1 |
+--------+
| <BLOB> |
+--------+
--可通过类型转换函数转为16进制串查看
SQL> SELECT rawtohex(col_1) to_hex FROM tab_blob;
+--------+
| TO_HEX |
+--------+
| FFD8FF |
+--------+
--若数据文件路径中含空格,需使用双引号包裹
SQL> INSERT INTO tab_blob VALUES(?); <# "C:\Program Files\t2.png";
CLOB类型
CLOB 即 Character Large Object,存储单字节或者多字节字符数据,支持固定宽度和可变宽度的字符集;存储数据与数据库字符集相关,读取字符集不一致时,可能出现乱码问题。
提示
- 类型 NCLOB、LONG 是 CLOB 的映射类型,即使用效果等同。
- 示例1
创建含CLOB类型字段表,并演示使用控制台方式插入数据。
sql
SQL> CREATE TABLE tab_clob(col_1 CLOB);
SQL> INSERT INTO tab_clob VALUES(?); <% C:\clob.txt;
--查询结果
SQL> SELECT * FROM tab_clob;
+--------+
| COL_1 |
+--------+
| <CLOB> |
+--------+
--使用to_char()函数可将CLOB类型字段转为字符串显示
SQL> SELECT to_char(col_1) AS col1 FROM tab_clob;
+--------+
| COL1 |
+--------+
| abcde |
+--------+