关于ORACLE的取值问题?

一里路 2005-05-14 10:35:07



ORACLE9数据库有个 CONTENT字段 CLOB型


在数据库中能显示字符,如"大一",但我用JSP的get.Clob("content")却显示出"oracle.sql.CLOB@13f903b"


请问这是怎么回事,有什么方法可以解决?

...全文
77 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
MARS.nEIL 2005-05-14
  • 打赏
  • 举报
回复
它输出的是一个变量或类以及它的地址,也就是它没有重载toString方法..
softken2005 2005-05-14
  • 打赏
  • 举报
回复
不能这么取值,给你个例子看看吧

package clob;

import java.sql.*;
import java.io.Writer;
import java.io.Reader;
import java.io.BufferedReader;

public class TestClob {
private Connection con = null;
private PreparedStatement ps = null;
private ResultSet rs = null;

public void test(String content) throws Exception {

String driver = "oracle.jdbc.driver.OracleDriver";
String url = "dataBase=jdbc:oracle:thin:@localhost:1521:cms";
try {
Class.forName(driver);
con = DriverManager.getConnection(url, "scott", "tiger");
con.setAutoCommit(false);
ps = con.prepareStatement(
"insert into test(id,clobcol) values(1,EMPTY_CLOB())");//先插入一个空值

ps.executeQuery();

String sql = "select clobcol from test where id=? for update";

ps = null;
ps = con.prepareStatement(sql);
ps.setInt(1, 1);


oracle.jdbc.OracleResultSet result = (oracle.jdbc.OracleResultSet) ps.
executeQuery();


oracle.sql.CLOB clob = null;
while (result.next()) {
clob = (oracle.sql.CLOB) result.getClob("clobcol");
}
Writer out = clob.getCharacterOutputStream();
out.write(content);
out.flush();
out.close();
con.commit();
result.close();
ps.close();

}
catch (SQLException ex) {
ex.printStackTrace();
con.rollback();
}
catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
finally {
con.setAutoCommit(true);
con.close();
}
}

public void getclob() throws Exception {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "dataBase=jdbc:oracle:thin:@localhost:1521:cms";


try {
Class.forName(driver);
con = DriverManager.getConnection(url, "scott", "tiger");
con.setAutoCommit(false);
String sql = "select clobcol from test where id=1";
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
String content=new String();
while (rs.next()) {
oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("clobcol");
if (clob != null) {
Reader is = clob.getCharacterStream();
BufferedReader br = new BufferedReader(is);
String s = br.readLine();
while (s != null) {
content += s ;
s = br.readLine();
}
}
System.out.println(content);

}
}
catch (SQLException ex) {ex.printStackTrace();
}
catch (ClassNotFoundException ex) {ex.printStackTrace();
}
}

public static void main(String[] args) {
try {
TestClob obj=new TestClob();
String content = "hello,world!";
obj.test(content);
obj.getclob();
}
catch (Exception ex) {
ex.printStackTrace();
}
}

}

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧