您的位置:首页 > 编程语言 > Java开发

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

2007-11-29 09:55 369 查看
在网上查找了相关资料,有这样一个思路:通过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;

}

或者各位前辈和大侠有更好的方法,请告知,先行谢过了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: