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段需要指定一个对应的文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在国内外大中型数据库管理系统中,把ORACLE作为数据库管理平台的用户比较多。ORACLE 不论是数据库管理能力还是安全性都是无可非议的,但是,它在汉字信息的显示方面着实给中国用户带来不少麻烦,笔者多年从事ORACLE数据库管理,经常收到周围用户和外地用户反映有关ORACLE数据库汉字显示问题的求援信,主要现象是把汉字显示为不可识别的乱码,造成原来大量信息无法使用。本文将就这一问题产生的原因和解决办法进行一些探讨,供存在这方面问题的用户朋友参考。      1、原因分析   通过对用户反映情况的分析,发现字符集的设置不当是影响ORACLE数据库汉字显示的关键问题。那么字符集是怎么一会事呢?字符集是ORACLE 为适应不同语言文字显示而设定的。用于汉字显示的字符集主要有ZHS16CGB231280,US7ASCII,WE8ISO8859P1等。字符集不仅需在服务器端存在,而且客户端也必须有字符集注册。服务器端,字符集是在安装ORACLE时指定的,字符集登记信息存储在ORACLE数据库字典的V$ NLS_PARAMETERS表中;客户端,字符集分两种情况,一种情况是sql*net 2.0以下版本,字符集是在windows的系统目录下的oracle.ini文件中登记的;另一种情况是sql*net 2.0以上(即32位)版本,字符集是在windows的系统注册表中登记的。要在客户端正确显示ORACLE 数据库汉字信息,首先必须使服务器端的字符集与客户端的字符集一致;其次是加载到ORACLE数据库数据字符集必须与服务器指定字符集一致。因此,把用户存在的问题归纳分类,产生汉字显示异常的原因大致有以下几种:   

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值