免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2634 | 回复: 7
打印 上一主题 下一主题

冥思苦想也没找到思路,用Perl能把关系数据库中的数据包装成binary格式导出吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-18 13:54 |只看该作者 |倒序浏览
create table bin
(
  f_char char(10) null,
  f_varchar varchar(20) null,
  f_numeric numeric(12, 2) null,
  f_date date null,
  f_timestamp timestamp null
);

insert into bin values('a1', 'b1', 13.03, date('2007-07-25'), current timestamp);
insert into bin values('a2', 'b2', 32.98, date('2007-07-26'), current timestamp);
insert into bin values('a3', null, null, date('2007-07-27'), null);
insert into bin values(null, 'b4', null, null, current timestamp);

附件是用数据库自己的工具导出的二进制数据

bin.rar

220 Bytes, 下载次数: 31

论坛徽章:
0
2 [报告]
发表于 2007-09-18 13:56 |只看该作者
把bin.rar直接改名为bin.txt或bin都行,不是rar压缩包,因为其它扩展名的不让上传

因为用数据库自己的工具导出的二进制数据在不同平台下是不一样的,我估计跟CPU芯片类型有关系,所以考虑用Perl导出,好让不同平台都兼容

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2007-09-18 14:03 |只看该作者
perldoc DBI
然后自己定义一个格式就可以了。

论坛徽章:
0
4 [报告]
发表于 2007-09-18 14:28 |只看该作者
我试了,字符型数据没问题,用pack处理一下,但numeric就不行,用DBI读出来的也是文本,跟用数据库导出来的不一样

论坛徽章:
0
5 [报告]
发表于 2007-09-18 14:29 |只看该作者
其实Perl中并没有numeric类型的数据,我用CLI接口编过程序,在c语言中numeric都是用结构体表达的

论坛徽章:
0
6 [报告]
发表于 2007-09-18 14:34 |只看该作者
我要输出的是二进制数据,不是格式化的文本

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
7 [报告]
发表于 2007-09-18 21:45 |只看该作者
其实你应该多看看pack的document...

应该可以解决numberic的问题....

注意pack/unpack必须成对...

怎麽pack的就要怎麽unpack还原...

同样的unpack/pack也一样...
我没用过你的数据库...不知道numeric是什麽格式...

论坛徽章:
0
8 [报告]
发表于 2007-09-24 16:04 |只看该作者
駱馬書有教
我有電子版的駱馬書第四版
要的話email 給我
email:lokchungk@hotmail.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP