解决LOB(blob与clob)的问题.docx

解决LOB(blob与clob)的问题.docx

ID:59332596

大小:19.44 KB

页数:8页

时间:2020-09-04

解决LOB(blob与clob)的问题.docx_第1页
解决LOB(blob与clob)的问题.docx_第2页
解决LOB(blob与clob)的问题.docx_第3页
解决LOB(blob与clob)的问题.docx_第4页
解决LOB(blob与clob)的问题.docx_第5页
资源描述:

《解决LOB(blob与clob)的问题.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、通过JDBC操纵Oracle数据库LOB字段的分析在Oracle中,LOB(LargeObject,大型对象)类型的字段现在用得越来越多了。因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种类型的字段,很灵活,适用于数据量非常大的业务领域(如图象、档案等)。而LONG、LONGRAW等类型的字段,虽然存储容量也不小(可达2GB),但由于一个表中只能有一个这样类型的字段的限制,现在已很少使用了。LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对象(BinaryLargeObject),适用于存贮非文本的字节

2、流数据(如程序、图象、影音等)。而CLOB,即字符型大型对象(CharacterLargeObject),则与字符集相关,适于存贮文本型的数据(如历史档案、大部头著作等)。下面以程序实例说明通过JDBC操纵Oracle数据库LOB类型字段的几种情况。先建立如下两个测试用的数据库表,PowerDesignerPD模型如下:建表SQL语句为:CREATETABLETEST_CLOB(IDNUMBER(3),CLOBCOLCLOB)CREATETABLETEST_BLOB(IDNUMBER(3),BLOBCOLBLOB)一、CLOB对象的存取1、往

3、数据库中插入一个新的CLOB对象publicstaticvoidclobInsert(Stringinfile)throwsException{/*设定不自动提交*/booleandefaultCommit=conn.getAutoCommit();conn.setAutoCommit(false);try{/*插入一个空的CLOB对象*/stmt.executeUpdate("INSERTINTOTEST_CLOBVALUES(’111’,EMPTY_CLOB())");/*查询此CLOB对象并锁定*/ResultSetrs=stmt.ex

4、ecuteQuery("SELECTCLOBCOLFROMTEST_CLOBWHEREID=’111’FORUPDATE");while(rs.next()){/*取出此CLOB对象*/oracle.sql.CLOBclob=(oracle.sql.CLOB)rs.getClob("CLOBCOL");/*向CLOB对象中写入数据*/BufferedWriterout=newBufferedWriter(clob.getCharacterOutputStream());BufferedReaderin=newBufferedReader(ne

5、wFileReader(infile));intc;while((c=in.read())!=-1){out.write(c);}in.close();out.close();}/*正式提交*/conn.commit();}catch(Exceptionex){/*出错回滚*/conn.rollback();throwex;}/*恢复原提交状态*/conn.setAutoCommit(defaultCommit);}2、修改CLOB对象(是在原CLOB对象基础上进行覆盖式的修改)publicstaticvoidclobModify(Strin

6、ginfile)throwsException{/* 设定不自动提交*/booleandefaultCommit=conn.getAutoCommit();conn.setAutoCommit(false);try{/*查询CLOB对象并锁定*/ResultSetrs=stmt.executeQuery("SELECTCLOBCOLFROMTEST_CLOBWHEREID=’111’FORUPDATE");while(rs.next()){/*获取此CLOB对象*/oracle.sql.CLOBclob=(oracle.sql.CL

7、OB)rs.getClob("CLOBCOL");/*进行覆盖式修改*/BufferedWriterout=newBufferedWriter(clob.getCharacterOutputStream());BufferedReaderin=newBufferedReader(newFileReader(infile));intc;while((c=in.read())!=-1){out.write(c);}in.close();out.close();}/*正式提交*/conn.commit();}catch(Exceptionex){/

8、*出错回滚*/conn.rollback();throwex;}/*恢复原提交状态*/conn.setAutoCommit(defaultCommit);}3、替换

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。