加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

Oracle数据库解决多媒体信息

发布时间:2021-12-30 02:09:22 所属栏目:教程 来源:互联网
导读:正在看的ORACLE教程是:Oracle数据库处理多媒体信息。 引文: 长期以来,多媒体信息在计算机中都是以文件形式存放,由操作系统管理的,但是随着计算机网络,分布式计算的发展,对多媒体信息进行高效的管理,存取,查询已经成了一种迫切需求。而关系数据库却
正在看的ORACLE教程是:Oracle数据库处理多媒体信息。
引文:
 
  长期以来,多媒体信息在计算机中都是以文件形式存放,由操作系统管理的,但是随着计算机网络,分布式计算的发展,对多媒体信息进行高效的管理,存取,查询已经成了一种迫切需求。而关系数据库却有着强大的数据管理能力。两方面结合,多媒体数据库由此应运而生。本文将就Oracle对多媒体信息进行处理的方式,工具,特色以及一些基本原理做一个综述。
 
  但是我们不能不遗憾的看到,现有数据库对一些多媒体数据所特有的操作能力还是很有限的。针对多媒体数据库的性能调优现在也遇到了新的问题。虽然如此,多媒体数据库仍旧产生了广阔的应用价值和前景。
当然本文不可能面面俱到,有关Oracle多媒体信息处理的具体内容,请查阅Oracle相关手册。
 
  一.应用前景综述
 
  随着计算机处理能力的大副提高,多媒体早已经融入到了计算机当中了,如果缺少了多媒体,缺少了各种多姿多采的图象,音频,视频,很难想象计算机如今会走入千家万户。长期以来,多媒体信息在计算机中都是以文件形式存放,由操作系统管理的,但是随着计算机网络,分布式计算的发展,这种单纯的文件式管理已经力不从心了,对多媒体信息进行高效的管理,存取,查询已经成了一种迫切需求。而关系数据库却有着强大的数据管理能力。两方面密切结合,多媒体数据库由此应运而生。可以预见,随着多媒体处理需求的加强,多媒体数据库的应用将越来越广泛。
 
    Oracle作为一家著名的数据库厂商,在多媒体信息处理上,更是走在了前边。本文将就Oracle对多媒体信息进行处理的方式,工具,特色以及一些基本原理做一个综述。希望对读者有所启发。当然,关系数据库还有好多家,虽然开发工具,编程接口语句各异,但在数据类型、处理方式上比较相似。所以我们在此略过。
 
  二.多媒体数据类型介绍
 
  在关系型数据库中,多媒体信息等大型对象是由lob型字段来进行存取的。在Oracle8i中,正式引入了此标准,以适应多媒体大对象处理的需求。Oracle数据库中,lob型数据有以下几种:
 
  --------------------------------------------
 
  Lob类型 说明
 
  Clob: 和Oracle7的long型相似,clob可以存储单字节型数据
 
  Nclob: Nclob存储定宽的多字节国家字符集数据
 
  Blob: 和Oracle7中的long raw类型相似。可以存储无结构的二进制数据。Oracle8没有对这种数据进行解释 ,只是按照原来的形式存储和检索它。
 
  Bfile: Bfile允许对Oracle数据库以外存储的大型二进制文件进行只读形式的访问。和其它三种lob类型数据 不同的是,bfile类型数据存储在一个单独的文件中,该文件不由Oracle来维护。
 
  特点:
 
  1.在Oracle7中,相应的long或long raw字段有2g的限制,而lob的限制是4g 。
 
  2.lob可以使用调用接口OCI或者由pl/sql利用dbms_lob包进行操纵。
 
  3.lob不象long型那样每个表中最多只有一个字段的限制,其可以有多个,而又可以利用触发器的特性。
 
  4.lob数据处理可以获得与其它数据同样的事物特性。
 
  5.lob的存储比较特殊,它并不是跟其他数据存储在同一个数据库表中,而是可以单独存放于不同的表空间中,由一个定位符指向实际的lob数据。
 
[NextPage] 三.多媒体大对象存取例程举例
 
  按照如下步骤来完成各个操作:
 
  (1)先建立一个数据库表:
 
    create table lobdemo(key NUMBER KEY,clob_col CLOB,blob_col BLOB,bifle_col BFILE);
 
  这个数据库第一列存储一个码,另外三列存储lob型数据。
 
  (2)表建好以后,往表中插入一条数据:
 
    insert into lobdemo(key,clob_col,blob_col,bfile_col) values (10,'abcdefghijklmnopqrsatuvwxyzasdffasfsdafsdafsdfadfsadfsdfsdfdsdsffds',empty_blob(),null);
 
  在这一条数据中,第二列我们插入一个字符串,它被格式化为clob类型数据进行存储;第二列我们使用empty_blob()函数来初始化一个定位符,以后就可以获取这个定位符进行比如select,update等操作了;第三列赋空值,它并没有获得一个定位符,这是与empty_blob()函数的区别。
 
  (3)查询插入表中的数据
 
    select blob_col from boldemo where key=20;
 
  注意:这一sql语句的返回结果是一个定位符(locator),而不是实际的数据本身。
 
  (4)修改数据库中数据
 
    update lobdemo SET blob_col='aedevbagddgagdfdfasasdfdsa' where key=10;

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读