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;
}
或者各位前辈和大侠有更好的方法,请告知,先行谢过了!
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;
}
或者各位前辈和大侠有更好的方法,请告知,先行谢过了!
相关文章推荐
- java从sql server读取text类型字段
- 如何解决 tomcat 下 oracle 缓冲池 读取 clob 字段内容 时的错误 "java.lang.ClassCastException: org.apache.commons.dbcp.DelegatingResultSet "
- SQL Server中TEXT类型字段值在数据库中追加字符串方法
- 用java和oracle实现BLOB字段的字符串读取【转】
- SQL Server TEXT类型字段字符串替换示例处理脚本
- java中如何将byte数组内容转换为字符串?
- java里如何使用输入流和输出流实现读取本地文件里内容和写出到本地文件里
- SQL Server获取TEXT字段的内容长度
- SQL Server获取TEXT字段的内容长度
- java如何读取配置文件中的内容
- 用java和oracle实现BLOB字段的字符串读取【转】
- sql server 2008 如何使用正则更新替换字段内容
- Sql Server 中 text或ntext 字段内容替换
- 批量替换ntext字段内容,@textA为要替换的字符串,@textB为替换后的字符串
- 利用Java代码把oracle的blob字段内容解析成XML格式的字符串
- Java用正则表达式如何读取网页内容
- 有关读取SQL数据库里TEXT和NTEXT类型字段内容的问题
- C#.net读取Excel表中的数据时,有些字段内容(字符串、数字)读取不到的解决办法
- Sql Server中如何让一个表的某个字段的值连成字符串
- 【Java总结】如何读取Jar包中文件内容