惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Last Week in AI
Last Week in AI
Project Zero
Project Zero
L
LINUX DO - 最新话题
C
Cisco Blogs
P
Privacy International News Feed
S
Schneier on Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Security @ Cisco Blogs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
V
Vulnerabilities – Threatpost
W
WeLiveSecurity
Webroot Blog
Webroot Blog
K
Kaspersky official blog
Help Net Security
Help Net Security
博客园_首页
Security Archives - TechRepublic
Security Archives - TechRepublic
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
雷峰网
雷峰网
The Last Watchdog
The Last Watchdog
WordPress大学
WordPress大学
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
A
Arctic Wolf
I
Intezer
V
V2EX
博客园 - 【当耐特】
Latest news
Latest news
T
Tenable Blog
Google Online Security Blog
Google Online Security Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
Cyberwarzone
Cyberwarzone
量子位
G
GRAHAM CLULEY
T
Troy Hunt's Blog
博客园 - Franky
Simon Willison's Weblog
Simon Willison's Weblog
博客园 - 三生石上(FineUI控件)
TaoSecurity Blog
TaoSecurity Blog
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
Visual Studio Blog
Jina AI
Jina AI
T
The Exploit Database - CXSecurity.com
NISL@THU
NISL@THU
Scott Helme
Scott Helme

博客园 - surprise

首次使用Ajax 大家看一下这是.net的漏洞还是程序有问题,我一时也没搞清,只知道这问题挺怪的 - surprise - 博客园 一道Sql语句问题? 介绍一种Web上打印技术 Sql Server 中image类型迁移到Oracle 中Blob类型出现图片显示不出来,why????请博客们帮忙 在C#中存储Blob类型的数据, windows 2000下最多可以承受有多大容量外存???? 如何使用一个不错的图表组件WebChart(免费) 太爽了博客园有论坛了? 谁能帮我 WebChart组件的使用??? 能不能在博客园内建立一块开源区呀??? 如何在类库项目中添加配置文件?????? 中文版的hibernate pdf教程下载 用Nhibernate怎么实现数据的添加、删除、修改简单程序 介绍Nhibernate网站 俺现在碰到一些问题请大家帮忙??? 俺现在有个程序需要UTC转换为当地时间,哪位大虾会呀??? 我想问一下NHibernate的问题??? 10.1我发现一个非常好的架构NHibernate,我想和大家一起研究
运用C#处理lob数据类型 (Oracle)
surprise · 2005-06-27 · via 博客园 - surprise
 

运用C#处理lob数据类型 Oracle

一、           介绍不规则数据类型

随着媒体技术的进步,人们的要求也越来越多,因此现在的数据库中不单单存储简单的数据类型,还可以存储图片、文件、声音等非常庞大的二进制数据,我们把这种不规则数据类型叫做LOBLarge Object)。对于LOB数据即可以存储50K还可以存储50M的二进制数据内容。

Oracle数据库中,大型数据类型有以下几种:

Clob long型相似,clob可以存储单字节型数据

Nclob Nclob存储定宽的多字节国家字符集数据

Blob:可以存储无结构的二进制数据如图片

Bfile Bfile允许对Oracle数据库以外存储的大型二进制文件进行只读形式的访问。和其它三种lob类型数据 不同的是,bfile类型数据存储在一个单独的文件中,该文件不由Oracle来维护。

在这里主要介绍运用C#储存和读取图片(数据库Oracle)。

二、           处理Blob数据项的方式

1.首先介绍数据表结构

表:student

字段名                                       类型                                   说明

STUDENTID                             number                         id关键字段

SNAME                                     varchar2(50)                 姓名

SPHOTO                                    Blob                             图片

定义了序列SEQ_STUDENT_ID

2.接着介绍存储Blob数据项方式

注意:Blob数据不能象其它类型数据一样直接插入(INSERT)。插入前必须先插入一个空的Blob对象,BLOB类型的空对象为EMPTY_BLOB(),之后通过SELECT命令查询得到先前插入的记录并锁定,继而将空对象修改为所要插入的Blob对象。

 调用储存过程方式

       http://www.cnblogs.com/surprise/archive/2005/04/19/140461.html

       优点:层次清晰明了,存储速度快

       缺点:运用dbms_lob包用dbms_lob.write()写入只能存储32k以下的图片

 另一种调用储存过程方式

       Oracle中写存储过程如下:

       create or replace procedure update_student_clob (

              id in number,

              file_name in varchar2)

       is

              b_lob  BLOB;

              f_lob   BFILE;

       BEGIN

              --首先把SPHOTO数据插入空值

              Update student set SPHOTO=empty_blob() where STUDENTID=id;

        --通过SELECT命令查询得到先前插入的记录并锁定

        SELECT SPHOTO INTO b_lob from student where STUDENTID=id for update;

        --读取图片文件对象

        f_lob:=bfilename(‘bb_images’, file_name);

              --打开图片文件对象

              dbms_lob.fileopen(f_lob,dbms_lob.file_readonly);

              --图片文件对象写入Blob数据中

              dbms_lob.loadfromfile(b_lob,f_lob,dbms_lob.getlength(f_lob));

              dbms_lob.fileclose(f_lob);

       END;

/

其中:id代表关键字段idfile_name代表文件名 

       bb_images代表目录对象,目录对象创建如下

       create directory bb_images as ‘d:\kk’;

C#中的代码部分与

http://www.cnblogs.com/surprise/archive/2005/04/19/140461.html雷同,在这里就不必多说了

       优点:无论多大的图片都能处理,速度上也非常快

       缺点:只能存储数据库本地的图片

 不用储存过程的方式

       原代码ConsoleApplication2.rar  (推荐,在我们公司项目中就用到了)

优点:解决了所有以上的缺点

缺点:破坏了项目的层次感

3.最后介绍读取Blob数据项方式

       原代码WebImage.rar       读取图片的方式比较简单,首先把Blob从数据库中读取出来,接着生成图片格式,最后输出图片就行。

以上的方式都是试验成功,如果哪位大虾有更好的方式请随时交流哦