1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

Oracle数据库如何正确用PL/SQL?

2022-11-23 | 数据库 | gtxyzz | 592°c
A+ A-

以下的文章主要介绍的是Oracle数据库如何正确用PL/SQL从相关数据库中来准确的读取BLOB字段的实际操作,其中包括如何正确的确认相关对象存在,以及如何创建存储Directory等相关内容介绍。

1.确认对象存在

SQL>colfdescfora30 
SQL>selectfid,fname,fdescfromeygle_blob; 
FIDFNAMEFDESC 

1 ShaoLin.jpg 少林寺-易经经

2 DaoYing.jpg 倒映

2.创建存储Directory

SQL>connect/assysdba 
Connected. 
SQL>createorreplacedirectoryBLOBDIRas'D:\oradata\Pic'; 
Directorycreated. 
SQL>
SQL>grantread,writeondirectoryBLOBDIRtoeygle; 
Grantsucceeded. 
SQL>

3.Oracle数据库用PL/SQL从数据库中读取BLOB字段的过程中我们需要创建存储过程

SQL>connecteygle/eygle 
Connected. 
SQL>
SQL>CREATEORREPLACEPROCEDUREeygle_dump_blob(pinamevarchar2,ponamevarchar2)IS 
l_fileUTL_FILE.FILE_TYPE; 
l_bufferRAW(32767); 
l_amountBINARY_INTEGER:=32767; 
l_posINTEGER:=1; 
l_blobBLOB; 
l_blob_lenINTEGER; 
BEGIN 
SELECTFPIC 
INTOl_blob 
FROMeygle_blob 
WHEREFNAME=piname; 
l_blob_len:=DBMS_LOB.GETLENGTH(l_blob); 
l_file:=UTL_FILE.FOPEN('BLOBDIR',poname,'wb',32767); 
WHILEl_posl_blob_lenLOOP 
DBMS_LOB.READ(l_blob,l_amount,l_pos,l_buffer); 
UTL_FILE.PUT_RAW(l_file,l_buffer,TRUE); 
l_pos:=l_pos+l_amount; 
ENDLOOP; 
UTL_FILE.FCLOSE(l_file); 
EXCEPTION 
WHENOTHERSTHEN 
IFUTL_FILE.IS_OPEN(l_file)THEN 
UTL_FILE.FCLOSE(l_file); 
ENDIF; 
RAISE; 
31END; 
32/ 
Procedurecreated. 

4.取出字段数据

SQL>hostls-ld:\oradata\Pic 
total7618 
-rwxrwxrwa1gqgaiNone2131553Apr1910:12DaoYing.jpg 
-rwxrwxrwa1gqgaiNone1768198Apr1910:12ShaoLin.jpg 
SQL>execeygle_dump_blob('ShaoLin.jpg','01.jpg') 
PL/SQLproceduresuccessfullycompleted. 
SQL>hostls-ld:\oradata\Pic 
total11072 
-rwxrwxrwa1AdministratorsSYSTEM1768198Apr2607:1601.jpg 
-rwxrwxrwa1gqgaiNone2131553Apr1910:12DaoYing.jpg 
-rwxrwxrwa1gqgaiNone1768198Apr1910:12ShaoLin.jpg 
SQL>
SQL>execeygle_dump_blob('DaoYing.jpg','02.jpg') 
PL/SQLproceduresuccessfullycompleted. 
SQL>hostls-ld:\oradata\Pic 
total15236 
-rwxrwxrwa1AdministratorsSYSTEM1768198Apr2607:1601.jpg 
-rwxrwxrwa1AdministratorsSYSTEM2131553Apr2607:1902.jpg 
-rwxrwxrwa1gqgaiNone2131553Apr1910:12DaoYing.jpg 
-rwxrwxrwa1gqgaiNone1768198Apr1910:12ShaoLin.jpg 

本文来源:1818IP

本文地址:https://www.1818ip.com/post/11012.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。