但我用了clob后,插值进去以后再读出来是空的,但记录是有的,请问是怎么回事阿?
解决方案 »
- 急:AIX 配置ORACLE后一直在重启中
- 请问这样一个PROCEDURE 怎么创建才算好?
- 请使用过Oracle XE版本的高手进来!
- vb.net调用Oracle存储过程如何传递datatable的参数?
- 求一条sql语句,在线等.....
- exp备份数据库是不是不能用ip地址来备份——求指教
- 这个SQL语句应该怎样提高性能?或者怎样建立索引来提高性能?
- 请教在procedure中调用 execute immediate 的问题
- 关于Oracle Undo Segment问题
- ORACLE中的关键字LEVEL是什么意思
- 请问oem 和 dba studio 在功能上有什么区别 ?
- 关于权限的分配
然后将文本update进去。
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Types;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.*;
import oracle.jdbc.driver.*;
import oracle.sql.*;
import java.io.*;
import pub.dbcon.DBConnection;public class DatabaseClob{
public String getClob(String sqlStr){
Connection conn = null;
Statement stmt = null;
CLOB lob_loc = null;
String buf="";
int len=0;
try{
DBConnection myConn=new DBConnection();
conn=myConn.getConn();
conn.setAutoCommit (false);
stmt = conn.createStatement ();
ResultSet rset = stmt.executeQuery (sqlStr);
if (rset.next())
{
lob_loc = ((OracleResultSet)rset).getCLOB (1);
}
len =(int)lob_loc.length ();
buf = lob_loc.getSubString(1,len);
}catch(Exception e){
System.out.println("建立Statement时错误:"+e.toString());
}
try{
stmt.close();
conn.commit();
conn.close();
}catch(Exception e){
System.out.println("关闭数据库连接时错误:"+e.toString());
}
return buf;
}
public String setClob(String sqlStr,String clobName,String info) {
String result=null;
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
java.io.Writer writer;
char[] data=new char[info.length()];
try{
DBConnection myConn=new DBConnection();
conn = myConn.getConn();
conn.setAutoCommit(false);
stmt = conn.prepareStatement(sqlStr,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery();
if (rs.next())
{
try{
Clob clob = rs.getClob(clobName);
writer=((CLOB)clob).getCharacterOutputStream();
info.getChars(0,info.length(),data,0);
writer.write(data);
writer.flush();
writer.close();
conn.commit();
}catch(Exception e)
{
conn.rollback();
result=e.toString();
System.out.println(e.toString());
}
}else{
result = "数据不存在!";
}
rs.close();
stmt.close();
conn.close();
}catch(Exception e){
System.out.println("建立Statement时错误:"+e.toString());
result="建立Statement时错误:"+e.toString();
}
return result;
}}