system下執(zhí)行
在余杭等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),余杭網(wǎng)站建設(shè)費(fèi)用合理。
create?or?replace?directory?BlobFile?as?'C:\TEMP';--路徑自己改一下
grant?read?on?directory?BlobFile?to?scott;
scott下建立存放的表
Create?Table?blobTest(
filename?varchar2(200),
filedesc?varchar2(200),
filebody?blob);
創(chuàng)建過程
Create?Or?Replace?Procedure?Proc_loadBlob(p_filename?varchar2,p_filedesc?varchar2)
Is
src_file?bfile;
dst_file?BLOB;
lgh_file?binary_integer;
Begin
src_file?:=?bfilename('BLOBFILE',p_filename);
insert?into?blobTest(filename,filedesc,filebody)
values?(p_filename,p_filedesc,EMPTY_BLOB())
returning?filebody?into?dst_file;
dbms_lob.fileopen(src_file,dbms_lob.file_readonly);
lgh_file?:=?dbms_lob.getlength(src_file);
dbms_lob.loadfromfile(dst_file,src_file,lgh_file);
update?blobTest
set?filebody?=?dst_file
where?filename?=?p_filename;
dbms_lob.fileclose(src_file);
End?Proc_loadBlob;
執(zhí)行插入:
exec?Proc_loadBlob('101101.jpeg','給圖片命名);
你要是非弄個id的話,可以自己建立一個序列,到時候自增就好了呀
最后給你上圖
1、創(chuàng)建表,注意:插入圖片的列要定義成BLOB類型
create table image_lob(t_id varchar2(5) not null,t_image blob not null);
2、創(chuàng)建圖片目錄,images為目錄名
create or replace directory "images" as 'f:\pic\';
3、創(chuàng)建存儲過程,filename為圖片的名字,如‘cat.jpg’
create or replace procedure img_insert(tid varchar2,filename varchar2)as
f_lob bfile;
b_lob blob;
begin
insert into image_lob(t_id,t_image)
values(tid,empty_blob())return t_image into b_lob;
f_lob:=bfilename('images',filename);
dbms_lob.fileopen(f_lob,dbms_lob.file_readonly);
dbms_lob.loadfromfile(b_lob,f_lob,
dbms_lob.getlength(f_lob));
dbms_lob.fileclose(f_lob);
commit;
end;
/
4、執(zhí)行上面的存儲過程,實(shí)現(xiàn)圖片的插入
exec img_insert('1','cat.jpg');
5、查看表
select * from image_lob;
在開發(fā)過程中,經(jīng)常會遇到oracle中存圖片的情況,下面就為您想介紹一個可以輕松在oracle中存圖片的方法,希望對您能有所幫助。
一個存儲圖片文件的過程,任何開發(fā)工具都可以通過調(diào)用過程把圖片文存儲到數(shù)據(jù)庫中。
oracle中存圖片的詳細(xì)步驟:
SQL connect chanet/chanet@oradb;
已連接。
SQL CREATE TABLE IMAGE_LOB (T_ID VARCHAR2 (5) NOT NULL,T_IMAGE BLOB NOT NULL);
表已創(chuàng)建。
SQL CREATE OR REPLACE DIRECTORY IMAGES AS 'C:\Oracle'; --圖片目錄
目錄已創(chuàng)建。
SQL CREATE OR REPLACE PROCEDURE IMG_INSERT (TID VARCHAR2,FILENAME VARCHAR2) AS F_LOB BFILE; B_LOB BLOB; BEGIN INSERT INTO IMAGE_LOB (T_ID, T_IMAGE) VALUES (TID,EMPTY_BLOB ()) RETURN T_IMAGE INTO B_LOB; F_LOB:= BFILENAME ('IMAGES', FILENAME); DBMS_LOB.FILEOPEN (F_LOB, DBMS_LOB.FILE_READONLY); DBMS_LOB.LOADFROMFILE (B_LOB, F_LOB, DBMS_LOB.GETLENGTH (F_LOB)); DBMS_LOB.FILECLOSE (F_LOB); COMMIT; END; /
過程已創(chuàng)建。
SQL EXEC IMG_INSERT('1','f_TEST.jpg');
PL/SQL 過程已成功完成。
“向blob插入圖片” 會獲得好多結(jié)果,比如
將圖片插入到BLOB類型的字段中
建立一個表:create table a(a blob);
建立一個目錄:create directory tmp as 'e:\';
建立一個PL/SQL塊:
declare
b_file bfile;
b_lob blob;
begin
insert into a(a) values(empty_blob()) return a into b_lob;
--為了使PL/SQL編譯成功,必須先為該列插入一個empty_blob() 值,return a into b_lob將該列與一個blog類型的變量綁定在一起,以后只要為b_lob賦值,即等于將該值插入了表中。
b_file:=bfilename('tmp','filename.jpg');
--tmp是建立的文件所在的目錄,filename.jpg是文件名;將文件轉(zhuǎn)換為bfile類型
dbms_lob.open(b_file,dbms_lob.file_readonly);--將b_file 以只讀的方式打開
dbms_lob.loadfromfile(b_lob,b_file,dbms_lob.getlength(b_file));-- 將b_file中的內(nèi)容轉(zhuǎn)換到b_lob中
dbms_lob.close(b_file);
commit;
新聞標(biāo)題:oracle怎么插入照片,oracle數(shù)據(jù)庫怎么存儲圖片
當(dāng)前地址:http://jinyejixie.com/article44/dsdjcee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、動態(tài)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、域名注冊、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)