字段类型blobclobnclob
说明三种大型对象(LOB)用来保存较大的图形文件或带格式的文本文件如Miceosoft Word文档以及音频视频等非文本文件最大长度是GBLOB有几种类型取决于你使用的字节的类型Oracle i实实在在地将这些数据存储在数据库内部保存可以执行读取存储写入等特殊操作
我们所操作的clobtest_table中属性是(字符型idCLOB型picstr)目前我们假设一个大的字符对象str已经包含了我们需要存入picstr字段的数据而且connection对象conn已经建立以下的例子程序也因为不想占用太多的空间所以对抛出异常没有写大家参考一下api doc就可以知道该抛出什么异常了此处仅仅告诉大家如何去写
代码
()对数据库clob型执行插入操作
*************************************************
javasqlPreparedStatement pstmt = null;
ResultSet rs = null;
String query = ;
connsetAutoCommit(false);
query = insert into clobtest_table(idpicstr) values(?empty_clob());
javasqlPreparedStatement pstmt = connprepareStatement(query);
pstmtsetString();
pstmtexecuteUpdate();
pstmt = null
query = select picstr from clobtest_table where id = for update;
pstmt = conprepareStatement(query)
rs= pstmtexecuteQuery();
oraclesqlCLOB clobtt = null;
if(rsnext()){
clobtt = (oraclesqlCLOB)rsgetClob();
}
Writer wr = clobttgetCharacterOutputStream();
wrwrite(strtmp);
wrflush();
wrclose();
rsclose();
mit();
()通过sql/plus查询是否已经成功插入数据库
*************************************************
PL/SQL的包DBMS_LOB来处理LOB数据察看刚才的插入是否成功使用DBMS_LOB包的getlength这个procedure来检测是否已经将str存入到picstr字段中了如
SQL> select dbms_lobgetlength(picstr) from clobtest_table;
()对数据库clob型执行读取操作
*************************************************
读取相对插入就很简单了基本步骤和一半的取数据库数据没有太大的差别
String description =
query = select picstr from clobtest_table where id = ;
pstmt = conprepareStatement(query);
ResultSet result = pstmtexecuteQuery();
if(resultnext()){
oraclejdbcdriverOracleResultSet ors =
(oraclejdbcdriverOracleResultSet)result;
oraclesqlCLOB clobtmp = (oraclesqlCLOB) orsgetClob();
if(clobtmp==null || clobtmplength()==){
Systemoutprintln(======CLOB对象为空 );
description = ;
}else{
description=clobtmpgetSubString((long)(int)clobtmplength());
Systemoutprintln(======字符串形式 +description);
}
}