新聞中心
oracle用insert可以直接在表中插入圖片嗎?
“向blob插入圖片” 會(huì)獲得好多結(jié)果,比如
10年積累的成都網(wǎng)站建設(shè)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先制作網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有六合免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
將圖片插入到BLOB類型的字段中
建立一個(gè)表:create table a(a blob);
建立一個(gè)目錄:create directory tmp as 'e:\';
建立一個(gè)PL/SQL塊:
declare
b_file bfile;
b_lob blob;
begin
insert into a(a) values(empty_blob()) return a into b_lob;
--為了使PL/SQL編譯成功,必須先為該列插入一個(gè)empty_blob() 值,return a into b_lob將該列與一個(gè)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;
如何將照片存儲(chǔ)在oracle中
在開發(fā)過程中,經(jīng)常會(huì)遇到oracle中存圖片的情況,下面就為您想介紹一個(gè)可以輕松在oracle中存圖片的方法,希望對(duì)您能有所幫助。
一個(gè)存儲(chǔ)圖片文件的過程,任何開發(fā)工具都可以通過調(diào)用過程把圖片文存儲(chǔ)到數(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 過程已成功完成。
學(xué)習(xí)ORACLE插入圖片,在網(wǎng)上看到示例如下:
system下執(zhí)行
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','給圖片命名);
你要是非弄個(gè)id的話,可以自己建立一個(gè)序列,到時(shí)候自增就好了呀
最后給你上圖
新聞標(biāo)題:oracle怎么插入圖片 oracle怎么導(dǎo)入視圖
瀏覽地址:http://www.ef60e0e.cn/article/hphejp.html