免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2072 | 回复: 9
打印 上一主题 下一主题

CLOB(2000000)我该怎么写程序? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-09 16:40 |只看该作者 |倒序浏览
CLOB(2000000)我该怎么写程序Pro*C?
这样进行增加、修改?       

论坛徽章:
0
2 [报告]
发表于 2003-02-10 11:10 |只看该作者

CLOB(2000000)我该怎么写程序?

为何没人理我呀?

论坛徽章:
0
3 [报告]
发表于 2003-02-10 13:43 |只看该作者

CLOB(2000000)我该怎么写程序?

?????

论坛徽章:
0
4 [报告]
发表于 2003-02-10 18:04 |只看该作者

CLOB(2000000)我该怎么写程序?

我顶~~~~~~

论坛徽章:
0
5 [报告]
发表于 2003-02-11 13:48 |只看该作者

CLOB(2000000)我该怎么写程序?

我顶~~~~~~

论坛徽章:
0
6 [报告]
发表于 2003-02-11 14:49 |只看该作者

CLOB(2000000)我该怎么写程序?

没用过proc

你可以到你的ORACLE主目录下
precomp/demo/proc

应该有demo

论坛徽章:
0
7 [报告]
发表于 2003-02-11 16:48 |只看该作者

CLOB(2000000)我该怎么写程序?

没有!我找过~

论坛徽章:
0
8 [报告]
发表于 2003-02-12 09:55 |只看该作者

CLOB(2000000)我该怎么写程序?

顶~~~~~

论坛徽章:
0
9 [报告]
发表于 2003-02-12 16:51 |只看该作者

CLOB(2000000)我该怎么写程序?

我这里有java写的
有关oracle字段类型的相关信息可以查阅oracle技术网。下面摘抄一些有关blob.clob等类型的说明。又便于大家的了解。
字段类型:blob,clob,nclob
说明:三种大型对象(LOB),用来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件,最大长度是4GB。LOB有几种类型,取决于你使用的字节的类型,Oracle 8i实实在在地将这些数据存储在数据库内部保存。可以执行读取、存储、写入等特殊操作。

我们所操作的clobtest_table中属性是(字符型id,CLOB型picstr),目前我们假设一个大的字符对象str已经包含了我们需要存入picstr字段的数据。而且connection对象conn已经建立。以下的例子程序也因为不想占用太多的空间,所以对抛出异常没有写。大家参考一下api doc。就可以知道该抛出什么异常了,此处仅仅告诉大家如何去写。

代码:


(1)对数据库clob型执行插入操作
*************************************************

java.sql.PreparedStatement pstmt = null;
ResultSet rs = null;
String query = "";

conn.setAutoCommit(false);
       query = "insert into clobtest_table(id,picstr) values(?,empty_clob())";
java.sql.PreparedStatement pstmt = conn.prepareStatement(query);
pstmt.setString(1,"001";
pstmt.executeUpdate();
pstmt = null
       query = "select picstr from clobtest_table where id = '001' for update";
pstmt = con.prepareStatement(query)
rs= pstmt.executeQuery();

oracle.sql.CLOB clobtt = null;
if(rs.next()){
    clobtt = (oracle.sql.CLOB)rs.getClob(1);
}
Writer wr = clobtt.getCharacterOutputStream();
wr.write(strtmp);
wr.flush();
wr.close();
rs.close();
con.commit();



(2)通过sql/plus查询是否已经成功插入数据库
*************************************************

PL/SQL的包DBMS_LOB来处理LOB数据。察看刚才的插入是否成功。使用DBMS_LOB包的getlength这个procedure来检测是否已经将str存入到picstr字段中了。如:

SQL>; select dbms_lob.getlength(picstr) from clobtest_table;


(3)对数据库clob型执行读取操作
*************************************************

读取相对插入就很简单了。基本步骤和一半的取数据库数据没有太大的差别。
String description = ""
      query = "select picstr from clobtest_table where id = '001'";
pstmt = con.prepareStatement(query);
ResultSet result = pstmt.executeQuery();
if(result.next()){
    oracle.jdbc.driver.OracleResultSet ors =  
              (oracle.jdbc.driver.OracleResultSet)result;
    oracle.sql.CLOB clobtmp = (oracle.sql.CLOB) ors.getClob(1);

    if(clobtmp==null || clobtmp.length()==0){
        System.out.println("======CLOB对象为空 ";
        description = "";
    }else{
        description=clobtmp.getSubString((long)1,(int)clobtmp.length());
        System.out.println("======字符串形式 "+description);
    }
}

论坛徽章:
0
10 [报告]
发表于 2003-02-12 16:54 |只看该作者

CLOB(2000000)我该怎么写程序?

我建议你上oralce技术网,那里的资料比较全一些
我写过pro*c的程序
不过没有操作过blob这种类型的数据
好像oracle本身就有C的接口访问程序,我一个做过这种项目的朋友说的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP