Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


大对象数据类型

📄字数 768
👁️阅读量 加载中...

XuguDB 支持的大对象数据类型按保存的数据形式划分,可分为两类:

  • 二进制大对象类型(BLOB)
  • 文本大对象类型(CLOB)

相关信息对比见下表:

数据类型长度最大值存储方式数据形式
BLOB2GB可变长度二进制形式数据
CLOB2GB可变长度字符形式文本数据

大对象数据类型最大支持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  |
+--------+