KingbaseES 导入导出blob列数据
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'));
查看数据
可以看出英文,数字,符号未做转换直接存入数据库中,中文,文件,图片转换为不可读内容存放在数据库中。
那是否有方法可以读取原本可读的数据内容呢?
可以通过
1.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 行记录)
上面的结果可以看出图片无法被转换,而文本文件则会将具体内容转义出来。
test=# select blob_export(file,'/home/kbc5/dc1.gif') from t1 where id = 3;
blob_export
1
(1 行记录)
函数执行结果1表示成功。进入目录查看文件:
()
可以看到2个文件一样大。
test=# select blob_export(file,'/home/kbc5/dc2.txt') from t1 where id <> 3;
blob_export
1
1
(2 行记录)
进入目录看到只有一个dc2.txt文件,说明后面一行导出的文件会将前一行导出的文件覆盖。
所以使用该函数进行操作时1个blob段需要指定一个对应的文件。
最新文章
- 网页引用本地电脑的字体 css设置浏览器会不显示的解决办法
- iOS-开启arc之后 NSNotificationCenter removeObserver 是否需要调用
- 总结列表显示ListView知识点
- 2016年11月19日 星期六 --出埃及记 Exodus 20:10
- MySql运算符
- AWK中几个变量
- 如何在macox下面配置集成ios和android游戏教程
- 多项目中SVN权限管理精辟解析
- Redis能干啥?细看11种Web应用场景
- [模板] 无旋Treap (C++ class)
- Sharding-jdbc视频:当Sharding-jdbc遇到Spring Boot
- 【父元素parent】【子元素children】【同胞siblings】【过滤】
- 详解centos7配置本地yum源的方法
- spark 关联source
- bower 和 npm 的区别详细介绍
- gitlab配合walle搭建发布系统
- Android NDK开发Crash错误定位
- unordered_map 遇到 vector subscript out of range 的错误提示
- Go语言 7 并发编程
- object类型转换为Array类型