导航:首页 > 编程语言 > 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相关的资料

热点内容
WPS筛选之后的数据怎么保存 浏览:444
htc手机查询代码 浏览:757
苹果手机激活码忘记了怎么办 浏览:360
如何查看苹果手机无线密码 浏览:651
从零开始学网站怎么学 浏览:38
qq10个g都是什么文件 浏览:453
江苏电信免费升级100m 浏览:10
哪些app买衣服买鞋 浏览:85
安卓最终幻想3隐藏人物 浏览:922
怎么将一大堆图片放进文件夹 浏览:355
net如何控制光驱刻录文件 浏览:350
未获取ukey中的数据什么意思 浏览:603
怎么样往app上冲钱 浏览:394
vb编程中声明常量的语句是什么 浏览:39
网购网站的广告怎么弄 浏览:640
word文件怎么格式化 浏览:929
js验证checkbox是否勾选 浏览:991
qq520红包病毒是真的吗 浏览:875
文件夹里的数字是什么 浏览:118
us数据线怎么连接车载音乐 浏览:320

友情链接