解决字符串插入不能大于2000.(用的数据库环境为Oracle 9i; 10g不能大于4000)
来源:互联网 发布:js调起android应用 编辑:程序博客网 时间:2024/05/21 11:37
//: CharacterStreamTest.java
// author: yangwm 3/1 2008
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
public class CharacterStreamTest {
public static void main( String args[] ){
Connection conn = null ;
PreparedStatement pstm = null;
Statement stm = null ;
ResultSet rs = null;
try{
StringBuilder message = new StringBuilder("12345");
for (int i = 0; i < 152; i++) {
message.append("abcdefghijklmnopqrstuvwxyz");
}
message.append("Oracle Database 10g Express Edition 入门");
byte[] messageBytes = message.toString().getBytes();
int messageBytesLength = messageBytes.length;
System.out.println("messageBytesLength=" + messageBytesLength);
System.out.println("messageLength=" + message.toString().length());
InputStreamReader isr = new InputStreamReader(new java.io.ByteArrayInputStream(messageBytes));
// 注册 Driver .
Class.forName( "oracle.jdbc.driver.OracleDriver" );
// 连接 数据库 ---> Connection
String url = "jdbc:oracle:thin:@localhost:1521:XE" ;
conn = DriverManager.getConnection(url , "system","123");
// 执行 SQL ------> PreparedStatement
String sqlUpdate = "update users set phone=?,message=? where id=?";
pstm = conn.prepareStatement(sqlUpdate);
pstm.setString(1, "800-800-888");
/*
使用该语句 pstm.setString(2, message.toString()); 所插入的字符串不能大于2000(用的数据库环境为Oracle 9i,如果用的数据库环境为Oracle 10g不能大于4000).
如果大于2000,可能会抛出java.sql.SQLException: Data size bigger than max size for this type: 2001
如果使用该语句 pstm.setCharacterStream(2, isr, messageLength);
*/
pstm.setCharacterStream(2, isr, 0);
pstm.setLong(3, 1);
int r = pstm.executeUpdate();
System.out.println( r + " rows effected" );
// 执行 SQL ------> Statement
stm = conn.createStatement();
String sqlSelect = "select message from users where id=1" ;
rs = stm.executeQuery( sqlSelect );
if ( rs.next() ){
String mess = rs.getString( 1 );
System.out.println( "=======================" );
System.out.println( "message " + mess );
System.out.println( "=======================" );
System.out.println( "message.length() " + mess.length() );
}
}catch(Exception e){
e.printStackTrace();
}finally{
//5, 释放数据资源.
if( rs != null ) try{ rs.close(); }catch(Exception e ){}
if( stm != null ) try{ stm.close(); }catch(Exception e ){}
if( pstm != null ) try{ pstm.close(); }catch(Exception e ){}
if( conn != null ) try{ conn.close(); }catch( Exception e ){}
}
}
}
/*
create table users (
id number primary key ,
username varchar2(50),
password varchar2(20),
phone varchar2(20),
email varchar2(50),
message varchar2(4000)
);
create sequence users_seq;
insert into users(id,username,password,phone,email,message) values(users_seq.nextval,'yangwm','12345','12345678','jxfzywm@163.com','Oracle Database 10g Express Edition 入门');
*/
- 解决字符串插入不能大于2000.(用的数据库环境为Oracle 9i; 10g不能大于4000)
- 解决QNetworkAccessManager实现ftp功能后,不能上传大于1G文件的问题
- SQLServer的一个奇怪问题:数据库文件不能大于4G?
- 关于fseek不能定位大于2G文件的问题
- 解决mybatis in语句不能大于1000的问题
- 转:Oracle中的rownum不能使用大于>的问题
- Oracle中的rownum不能使用大于>的问题
- [转]Oracle中的rownum不能使用大于>的问题
- 转:Oracle中的rownum不能使用大于>的问题
- 转:Oracle中的rownum不能使用大于>的问题
- Oracle中的rownum不能使用大于>的问题
- Oracle中的rownum不能使用大于>的问题
- pb不能显示大于255的字符
- 关于Oracle数据库中创建序列时遇到的一些问题(START WITH 不能大于 MAXVALUE)
- JS 判断字符串是否为时间格式&开始时间不能大于截止时间
- 大于10G的数据库在还原时出错
- 查询数据库大于1G的表
- Win7旗舰版不能将大于4G的文件拷贝到U盘怎么办?
- error LNK2001: unresolved external symbol 错误分析
- vim操作图片
- 使用CFileDialog的例子
- 很多同感的话
- shell 替换文本中的指定内容
- 解决字符串插入不能大于2000.(用的数据库环境为Oracle 9i; 10g不能大于4000)
- 百度贴吧的主域名换了post->tieba
- 百度IM内测:提供内测版下载地址
- JDBC相应数据库Driver及下载
- VC++6.0 环境下删除自己添加的类
- Oracle SQL Plus 的基本操作 - Oracle 学习笔记 1
- “鼠标屏幕取词”技术
- 有些事
- 入门问题:关于Oracle的账户密码和SQL2005的sa账户启用问题的解决