- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大对象数据存取在Oracle数据库中设计与实现
大对象数据存取在Oracle数据库中设计与实现
摘 要 随着计算机应用系统的广泛应用,应该系统的数据库越来越大,可以存储或应用的数据类型也越来越多。大对象数据作为普通数据类型的补充可以帮助我们解决很多现实问题。但大对象数据的存储和读取却是困扰数据库设计师的难题,通常会使用高级语言JAVA等来实现Oracle数据库中大对象数据。本文试利用PL/SQL存储过程来实现Oracle数据库中LOB数据的处理,丰富Oracle LOB数据库的技术理论。
【关键词】大对象数据 Oracle LOB PL/SQL
随着数据库应用系统开发与设计的迅速发展,数据库设计师从简单的整型,备注型向更为复杂的数据类型进军。随着新的媒介质的产生,数据库应用系统不单纯地能处理文本、日期型数据这样的小对象数据,更多包含声音、图像或视频等的大对象数据应用而生。如何设计与存取大对象数据是困扰每个软件设计师的难题,如何应用这些大对象数据是软件设计师急需解决的问题。不同的数据库产品拥有不同的大对象数据类型,如SQL Server 数据库产品中就可以用Image来定义大图片数据,可以用Text或Ntext来定义大文本字段,这些大对象数据通常采用长二进制流存储,方面软件设计师调用。同样,Oracle数据库产品中可以用Raw或Blob来定义大对象数据,这种大对象数据采用字符形式存储。当今,大部分的应用系统都采用Oracle数据库,如何高效快速的存取大对象数据,如何存储大对象数据是软件设计师应该解决的核心问题,本文试利用PL/SQL存储过程来解决Oracle数据库中LOB数据的处理。
1 大对象数据的存储
数值型数据或其它小对象数据都是通过二维表来实现存储,将数据集成在数据表的行中,通过数据表的操作来实现数据的存放。大对象数据因为数据量大只能将数据块存储在存储设备上,通过一个16字节的指针指向数据块,而16字节的指针则放在二维数据表中,作为一个小对象数据存储。这个16字节的指针指向一个数据块存储片段的根节点,可以映射指向该数据块存储片段的内部指针。大对象数据的存取时,先读二维数据表中的指针信息,通过指针链接读取专门存储大对象数据的存储块。
2 Oracle大对象数据类型
Oralce 数据库是由美国甲骨文开发的一款分布式数据库产品,也是全世界最著名的一款B/S架构下的数据库产品之一。Oracle数据库是一款通用性极好的数据库,具备完整的数据库管理功能,是一款完备的关系数据库,遵循关系数据库的所有约束,也是一款分布式数据库,能实现分布式处理数据功能。目前市场上普遍采用Oracle Database 12c,该款产品引入了一个多承租方架构,可以让用户轻松管理数据库云,为未来海量数据处理提供方便。
Oracle数据库中总共包括了LONG,LONG RAW和LOB三种大对象数据类型。LONG和LONG RAW 是Oracle早期版本就带有的数据类型,最大长度为2G,只支持顺序访问,也不可以作为对象的属性处理。LOB是Oracle 8i版本后的数据类型,该数据类型包括内部LOB(BLOB CLOB NCLOB)和外部LOB(BFILE),所谓内部LOB就是指存放在数据中的大对象数据类型,所谓外部LOB就是指存放在操作系统中大对象数据类型。通常用BLOB来存放像图像、音频和视频等这样的二进制格式数据;用CLOB来存放像大的文本数据这样的数据库字符集格式字符数据;用NCLOB来存放像长文本数据这样Unicode字符集字符数据;用BFILE来存放指向某文本文件或二进制文件的操作系统文件指针。
3 Oracle中大对象数据的存取方法
3.1 新建测试用表.
CREATE TABLE pic_lob (oratest_ id VARCHAR2 (50) NOT NULL, oratest _pic BLOB NOT NULL)。
为方便大对象数据的存取,创建一个指针文件指向大对象数据。
CREATE DIRECTORY PIC AS ‘E:\oraceltest\11’; //设置操作目录
将操作目标设置好后,将该目录的读写权限放开,释放给当前数据库用户。
GRAT WRITE (read) ON DIRECTORY PIC TO SCOTT。
3.2 利用PL/SQL存储过程实现大对象数据存取
设计PL/SQL存储过程pic_insert,用来存放像图片,大文本段或视频等这样的大对象数据。
3.2.1 存入大对象的存储过程:
CREATE PROCEDURE pic_insert(tid VARCHAR2,filename VARCHAR2) AS bf hfile;
b_
原创力文档


文档评论(0)