在网上查找了相关资料,有这样一个思路:通过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 @[email protected]
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;
}
或者各位前辈和大侠有更好的方法,请告知,先行谢过了!