请教高手关于OCI返回数据长度不能超过65535字节长度的问题

[复制链接]
查看11 | 回复5 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
我用OCI来SELECT二进制数据,数据已经SELECT到BUFFER里面了,然而我却无法得到数据在BUFFER中的长度,因为它的返回表示长度的值rlen是一个两个byte的短整型,这样最多只能表示65535(64k)长度据,
所以即使返回100k长度的数据,它也只能表示64k而已,
请问应该如何才能知道返回的数据长度呢?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
你肯定不能这样做撒,你应该分块读入数据,例如每次读入64K,而不要一次就想读入所有的数据!OCI中有专门获取BLOB字段长度的函数,你查一查吧!


回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
是不是必须用OCI函数啊?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
是的,利用回调或者查询方式,都可以返回数据长度,取得数据内容
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
你查看一下OCI的编程实例,有这方面的内容!
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
多谢各位啦,我已经搞定了,妈的在GOOGLE上面也没有答安,还是自己慢慢看英文文档在某个角落发现的。
设置数据为VAR RAW,然后截取前四个BYTE就是长度咯
而且我用的是数组动态FETCH,一次FETCH多条记录的^_^
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行