操作lob,居然成功了!

lsl031發表於2007-09-06

SQL> create table testlob (id number(6) primary key,name varchar2(10),photo blob
);

表已建立。

SQL> insert into testlob values(1,'baobei',emty_blob());
insert into testlob values(1,'baobei',emty_blob())
*
第 1 行出現錯誤:
ORA-00904: "EMTY_BLOB": 識別符號無效


SQL> insert into testlob values(1,'baobei',empty_blob());

已建立 1 行。

testlob的指令碼:

declare
lobloc BLOB;
fileloc BFILE;
amount int;
src_offset int:=1;
dest_offset int:=1;
begin
select photo into lobloc from scott.testlob where id=&id for update;
fileloc:=bfilename('MyFilePath','&filename');
dbms_lob.fileopen(fileloc,0);
amount:=dbms_lob.getlength(fileloc);
dbms_lob.loadblobfromfile(lobloc,fileloc,amount,dest_offset,src_offset);
dbms_lob.fileclose(fileloc);
commit;
end;

SQL> CREATE OR REPLACE DIRECTORY MyFilePath AS 'e: est';
CREATE OR REPLACE DIRECTORY MyFilePath AS 'e: est'
*
第 1 行出現錯誤:
ORA-01031: 許可權不足
這個要什麼許可權阿?明天去查一下!

登到sys下,執行:

SQL> @d: estlob.txt
17 /
輸入 id 的值: 1
原值 8: select photo into lobloc from scott.testlob where id=&id for update;
新值 8: select photo into lobloc from scott.testlob where id=1 for update;
輸入 filename 的值: FIL12.JPG
原值 9: fileloc:=bfilename('MyFilePath','&filename');
新值 9: fileloc:=bfilename('MyFilePath','FIL12.JPG');

PL/SQL 過程已成功完成。

用pl/sql developer檢視,果然看到了我傳上去的照片。

那天心情好的時候把我的照片全部傳上去,我們也用資料庫來管理我的相片!

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/288166/viewspace-968147/,如需轉載,請註明出處,否則將追究法律責任。

相關文章