通过SOCKET传输过来一个TXT,如何让它插入指定的表中?如何将我的一个表,通过SOCKET传输给远端?需要转换成TXT传吗 http://expert.csdn.net/Expert/topic/1197/1197476.xml?temp=.9296686 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用CLOB?给个例子吧,JDBC的:插入CLOB:String content=从TXT中读内容;try{ java.sql.PreparedStatement pstmt = null; ResultSet rs = null; String query = ""; String key =""; Statement stmt = dbConn.createStatement (); rs=stmt.executeQuery("SELECT MAX(CNAME) FROM T_CLOB"); if(rs.next()){ key = rs.getString(1); if( key==null ) key="001"; else{ int intKey=Integer.valueOf(key).intValue(); intKey+=1; key=Integer.toString(intKey); } } dbConn.setAutoCommit(false); query = "INSERT INTO T_CLOB(CNAME,OBJ) VALUES(?,empty_clob())"; java.sql.PreparedStatement Pstmt = dbConn.prepareStatement(query); Pstmt.setString(1,key); Pstmt.executeUpdate(); Pstmt = null; query = "SELECT OBJ FROM T_CLOB WHERE CNAME =? FOR UPDATE"; Pstmt = dbConn.prepareStatement(query); Pstmt.setString(1,key); rs= Pstmt.executeQuery(); oracle.sql.CLOB clobtt = null; if(rs.next()){ clobtt = (oracle.sql.CLOB)rs.getClob(1); } Writer wr = clobtt.getCharacterOutputStream(); wr.write(content); wr.flush(); wr.close(); rs.close(); dbConn.commit(); } catch(Exception e){ !@#$%^&*())*&^%$$##@#$%%^^ 哇 } 读CLOB:try{ PreparedStatement ps = dbConn.prepareStatement("SELECT OBJ FROM T_CLOB WHERE CNAME=?"); ps.setString(1,"5"); ResultSet result = ps.executeQuery(); if(result.next()){ oracle.jdbc.driver.OracleResultSet ors =(oracle.jdbc.driver.OracleResultSet)result; oracle.sql.CLOB clobtmp = (oracle.sql.CLOB) ors.getClob(1); ors.close(); if(clobtmp==null || clobtmp.length()==0){ errTmp="CLOB IS NULL"; } else{ buffer=clobtmp.getSubString((long)1,(int)clobtmp.length()); } } else{ errTmp="NO DATA!"; } ps.close(); 用socket 送buffer吧}catch(Exception e){ 哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇 } 中间件使用pro*c或oci实现 oracle时间比较问题。 请教一条sql语句 WIN7上怎样安装oracle10g oracle 导入数据问题 PL/ SQL 里的中文 乱码了 怎么解决 ? oracle10g的登陆地址在哪?我的我忘了 有谁在fedora core6下成功安装oracle9i emo能看到我的数据,为何sql*plus看不到,急 对Oracle存储过程的迷惑 oracle存储过程开发 ora-01033 ORACLE initialization or shutdown in process 怪问题,请高手指点!
插入CLOB:String content=从TXT中读内容;
try{
java.sql.PreparedStatement pstmt = null;
ResultSet rs = null;
String query = "";
String key =""; Statement stmt = dbConn.createStatement ();
rs=stmt.executeQuery("SELECT MAX(CNAME) FROM T_CLOB");
if(rs.next()){
key = rs.getString(1);
if( key==null )
key="001";
else{
int intKey=Integer.valueOf(key).intValue();
intKey+=1;
key=Integer.toString(intKey);
}
}
dbConn.setAutoCommit(false);
query = "INSERT INTO T_CLOB(CNAME,OBJ) VALUES(?,empty_clob())";
java.sql.PreparedStatement Pstmt = dbConn.prepareStatement(query);
Pstmt.setString(1,key);
Pstmt.executeUpdate();
Pstmt = null;
query = "SELECT OBJ FROM T_CLOB WHERE CNAME =? FOR UPDATE";
Pstmt = dbConn.prepareStatement(query);
Pstmt.setString(1,key);
rs= Pstmt.executeQuery();
oracle.sql.CLOB clobtt = null;
if(rs.next()){
clobtt = (oracle.sql.CLOB)rs.getClob(1);
}
Writer wr = clobtt.getCharacterOutputStream();
wr.write(content);
wr.flush();
wr.close();
rs.close();
dbConn.commit();
}
catch(Exception e){
!@#$%^&*())*&^%$$##@#$%%^^ 哇
}
读CLOB:
try{
PreparedStatement ps = dbConn.prepareStatement("SELECT OBJ FROM T_CLOB WHERE CNAME=?");
ps.setString(1,"5");
ResultSet result = ps.executeQuery();
if(result.next()){
oracle.jdbc.driver.OracleResultSet ors =(oracle.jdbc.driver.OracleResultSet)result;
oracle.sql.CLOB clobtmp = (oracle.sql.CLOB) ors.getClob(1);
ors.close(); if(clobtmp==null || clobtmp.length()==0){
errTmp="CLOB IS NULL";
}
else{
buffer=clobtmp.getSubString((long)1,(int)clobtmp.length());
}
}
else{
errTmp="NO DATA!";
}
ps.close();
用socket 送buffer吧}
catch(Exception e){
哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇
}
使用pro*c或oci实现