KingbaseES兼容了Oracle的blob数据类型。通常是用来保存二进制形式的大数据,也可以用来保存其他类型的数据。
下面验证各种数据存储在数据库中形式。
建表:
create table t1 (id number, file blob);
插入数据:
insert into t1 values (1,’’’,\as123哈哈’);
insert into t1 values (2,blob_import(’/home/kbc5/ksql.log’));
insert into t1 values (3,blob_import(’/home/kbc5/tp.gif’));
查看数据:
可以看出英文,数字,符号未做转换直接存入数据库中,中文,文件,图片转换为不可读内容存放在数据库中。
那是否有方法可以读取原本可读的数据内容呢?
可以通过:
- convert_from 函数将数据翻译为可读内容(图片除外)。
- 2.blob_export 函数将blob的内容导出到本地进行读取。
test=# select convert_from(file,‘utf8’) from t1 ;
错误: 无效的 “UTF8” 编码字节顺序: 0xff
test=# select id, convert_from(file,‘utf8’) from t1 where id <> 3;
id | convert_from
----±---------------------------------------
1 | ‘,\as123哈哈
2 | 错误: 语法错误 在 “5” 或附近的 +
| 第1行insert into t2values (5,‘xarte’);+
| ^ +
|
(2 行记录)