Java如何读取Sql Server中Text字段(长字符串>8000)的内容?(非常急,已经折腾好几天了)...

在网上查找了相关资料,有这样一个思路:通过Sql Server提供的ReadText进行分段读取,然后把ReadText放进存储过程,Java来调用存储过程获得读取字符串的指针,但问题是Java获得指针后,如何获得具体的字符串的内容呢?具体步骤如下:
1、创建表
CREATE TABLE yb_table_oa
(
id int,
content text
)
2、创建存储过程
CREATE PROCEDURE dbo.getText
@readt varbinary(16) output
AS
declare @ptr binary(16)
select @ptr=textptr(content)
from yb_table_oa
where id=1
readtext yb_table_oa.content @ptr 0 1000
set @readt=@ptr
return 1234
GO
3、调用的Java代码
public String callTextString(String artId) {
String textStr = "";
if (StringFun.notNull(artId)) {
Connection conn=null;
CallableStatement proc = null;
try
{
//建立连接
conn = SQLConnectionManager.getInstance().getSQLConnection();
defaultCommit = conn.getAutoCommit();
proc = conn.prepareCall("{?=call getText(?)}");
proc.registerOutParameter(1,Types.INTEGER);
proc.registerOutParameter(2,Types.VARBINARY);
proc.execute();
byte[] ptr = proc.getBytes(1);
//关键这里获得指针后如何读取到字符串的内容呢?
proc.close();
conn.close();
}
catch(Exception ex)
{
SystemLogger.instance().logError(ex.getMessage());

}
}
return textStr;

}

或者各位前辈和大侠有更好的方法,请告知,先行谢过了!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值