|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你不用花费很多时间和金钱来培训现有的职工,或者去花大价钱雇用那些拥有各种证书的开发者。因为MySQL的维护和管理在很大程度上是“傻瓜型”的。oracle
由于做项目,必要利用BFILE字段存储图象文件,以是举行了一些研讨。
bfile字段实践的文件存储在文件体系中,字段中存储的是文件定位指针.bfile对
oracle来讲是只读的,也不介入事件性把持和数据恢复
bfile的基础操纵以下:
1.先在oracle数据库中上面我们创建一个目次别号,用于将文件定位指针映照到文
件体系:
createDIRECTORYtmpdirAS/tmp;
tmpdir暗示逻辑目次名,/tmp是实践目次。注重该目次oracle应当有读权限
然后依据必要受权
GRANTREADONDIRECTORYbfile_dir1TOscott;
创建一个含有bfile字段的表
createtablebfiletest(idnumber(3),fnamebfile);
创建一个含有BLOB字段的表
createtableblobtest(idnumber(3),ablobblob);
2.拔出数据
这里必要利用bfilename来举行bfile字段的insert大概update操纵
INSERTINTObfiletest
VALUES(1,BFILENAME(tmpdir,tmptest));
bfilename的参数1是DIRECTORY名,参数2是文件名。注重:这一行中拔出的是
一个指向/tmp/tmptest的文件定位指针映照,不是文件自己。
3.读取bfile
经由过程利用dbms_lob包举行能够对bfile读进到blob/clob工具中操纵(只读)
CREATEORREPLACEPROCEDUREloadLOBFromBFILE_proc(
TIDINNUMBER,rfilenameinvarchar2,rfiledirinvarchar2,upmessageoutvarchar2)
AS
Dest_locBLOB;
Src_locBFILE;
BEGIN
INSERTINTOBLOBTEST(ID,ABLOB)VALUES(TID,EMPTY_BLOB())RETURNABLOBINTODEST_LOC;
Src_loc:=BFILENAME(rfiledir,rfilename);
/*假如bfile文件实践存在*/
IF(DBMS_LOB.FILEEXISTS(Src_loc)!=0)
THEN
/*翻开bfile源文件*/
DBMS_LOB.OPEN(Src_loc,DBMS_LOB.LOB_READONLY);
/*翻开方针blob:*/
DBMS_LOB.OPEN(Dest_loc,DBMS_LOB.LOB_READWRITE);
/*从文件中装进*/
DBMS_LOB.LOADFROMFILE(Dest_loc,Src_loc,DBMS_LOB.GETLENGTH(Src_loc));
/*记得封闭:*/
DBMS_LOB.CLOSE(Dest_loc);
DBMS_LOB.CLOSE(Src_loc);
COMMIT;
upmessage:=0;
ENDIF;
EXCEPTION
WHENOTHERSTHEN
ROLLBACK;
upmessage:=操纵失利;
END;
当然,或许这并不是我们拒绝MySQL的一个有说服力的MySQL学习教程,但是对于一些比较守旧的IT经理来说,在为一些关键业务选择平台的时候,平台的成熟性却是必须要考虑的一个因素,在这一点上,MySQL无疑毫无优势。 |
|