导航:首页 > 编程语言 > javaoracle写入clob

javaoracle写入clob

发布时间:2024-10-18 14:07:04

㈠ oracle 对于大文本数据用什么类型

clob类型,但对于这个类型处理起来还是比较麻烦的,varchar2长度为4000bytes,如果varchar2能满足楼主的需求,建议使用varchar2,下面提供了在java 中读取clob类型的方式,我主要讲的是JDBC的操作,Hibernate目前不讲,操作这个Clob列主要分为插入和获取俩个操作:
1、Java程序插入Clob值到Oracle数据库表中:
String clob= "这里主要是要插入到表中的值";
//前面具体数据库连接代码这里省略,直接进正题
String sql = "insert into clob_test(id,str) values (1,?)";
PreparedStatement stmt = conn.prepareStatement(sql);
// 将clob转成流形式
Reader clobReader = new StringReader(clob);
stmt.setCharacterStream(1,clobReader,clob.length());// 替换sql语句中的?
stmt.executeUpdate();
2、读取Clob列的值
String sql = "select str from clob_test where id=1";
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
//最后获得的结果
String resultClob;
if(rs.next()){
//导入oracle.sql.CLOB包,或者直接引用这个包
oracle.sql.CLOB clob = rs.getClob("str");
Reader rd= clob.getCharacterStream();// 得到流
BufferedReader br = new BufferedReader(rd);
String s = br.readLine();
StringBuffer sb= new StringBuffer();
while (s != null) {
// 循环赋值
sb.append(s);
s = br.readLine();
}
clobResult = sb.toString();
}
希望楼主采纳

㈡ oracle 中存储大量文字信息用什么字段,java后台怎么实现,请举例。谢谢。

在oracle中存储大量的文字应该是用CLOB字段来存储。这种类型在用java将数据存进数据库中时比较简单,直接将String类型的文本写入就可以了。但是在从数据库中读取CLOB类型的数据到java中时比较麻烦,因为你是拿不到数据的,只能拿到这个字段的一个隐式指针,然后还要通过输入流来拿到。

㈢ oracle的Clob类型在java的增。改、差。要对6000字符进行操作,普通的string不行。知道的。。。。。

好像在java中有提供Clob这个类型的数据。你可以直接声明一个Clob类型变量存储查询结果,然后直接对Clob变量进行操作。
具体方法可以查看API

㈣ JAVA读取Oracle数据库Clob字段转换成String问题

getClob,可以获得CLOB字段的值,用
rs.getString无法得到
数据
,返回的

NULL;

㈤ java 大字符串转为二进制流存入CLOB字段 JDBC方法

dbField.getFieldValue().toString().getBytes();
上面这个值有吗?取到了吗?
下面是我以前一个项目的

InputStream pic = new FileInputStream(dto.get(i).getLibPic());

sql = "INSERT INTO piclib (name,pic,sign,remark) VALUES (?,?,?,?)";

pstmt = con.prepareStatement(sql);
pstmt.setString(1, dto.get(i).getName());
pstmt.setBinaryStream(2,pic,(int)dto.get(i).getLibPic().length());

㈥ java在oracle数据库中怎么插入读取CLOB值

参考:
/**
* 写入、更新CLOB字段的代码示例
*/
public void writeClob() {
//自定义的数据库连接管理类
Connection conn = DbManager.getInstance().getConnection();
try {
conn.setAutoCommit(false);
// 1.这种方法写入CLOB字段可以。
PreparedStatement stat = conn
.prepareStatement("insert into t_clob (id,clobfield) values(sys_guid(),?)");
String clobContent = "This is a very very long string";
StringReader reader = new StringReader(clobContent);
stat.setCharacterStream(1, reader, clobContent.length());
stat.executeUpdate();

// 2.使用类似的方法进行更新CLOB字段,则不能成功
// stat.close();
// stat =null;
// stat =
// conn.prepareStatement("update t_clob set clobfield=? where id=1");
// stat.setCharacterStream(1, reader, clobContent.length());
// stat.executeUpdate();

// 3.需要使用for update方法来进行更新,
// 但是,特别需要注意,如果原来CLOB字段有值,需要使用empty_clob()将其清空。
// 如果原来是null,也不能更新,必须是empty_clob()返回的结果。
stat = conn
.prepareStatement("select clobfield from t_clob where id='1' for update");
ResultSet rs = stat.executeQuery();
if (rs.next()) {
oracle.sql.CLOB clob = (oracle.sql.CLOB) rs
.getClob("clobfield");
Writer outStream = clob.getCharacterOutputStream();
char[] c = clobContent.toCharArray();
outStream.write(c, 0, c.length);
outStream.flush();
outStream.close();
}
conn.commit();
} catch (SQLException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

DbManager.getInstance().closeConnection(conn);

}

阅读全文

与javaoracle写入clob相关的资料

热点内容
电脑文件发送到手机上 浏览:342
企业网站导航代码 浏览:327
医院各系统网络如何设计 浏览:304
微信分享自定义描述 浏览:161
学信网毕业去向是什么app 浏览:196
查询电话卡绑定了什么app 浏览:210
旺旺如何更改密码 浏览:538
编程接龙怎么弄 浏览:29
如何安装cia文件 浏览:829
iphone静电干扰 浏览:105
echartsjs动态加载数据 浏览:161
css怎么引用字体文件 浏览:998
改文件名后缀无法播放 浏览:229
安卓手机怎么查找我的iphone 浏览:848
vonfig是什么文件夹 浏览:897
想找图片资源网站有哪些 浏览:914
计算机系如何提高编程能力 浏览:58
1对1的数据结构有哪些 浏览:442
哪里能导出大盘数据 浏览:401
酒店如何设置有线网络 浏览:576

友情链接