在internal這個使用者下給scott使用者授權如下:SQL>grant create any directory to scott;SQL>grant create any library to scott;在scott這個使用者下執行下述語句:SQL>create table bfile_tab (bfile_column BFILE);SQL>create table utl_lob_test (blob_column BLOB);SQL>create or replace directory utllobdir as "C:\DDS\EXTPROC";SQL>set serveroutput on然後執行下面語句就將C:\DDS\EXTPROC目錄下的word檔案COM.doc存入到utl_lob_test 表中的blob_column欄位中了。declare a_blob BLOB; a_bfile BFILE := BFILENAME("UTLLOBDIR","COM.doc"); --用來指向外部作業系統檔案begin insert into bfile_tab values (a_bfile) returning bfile_column into a_bfile; insert into utl_lob_test values (empty_blob()) returning blob_column into a_blob; dbms_lob.fileopen(a_bfile); dbms_lob.loadfromfile(a_blob, a_bfile, dbms_lob.getlength(a_bfile)); dbms_lob.fileclose(a_bfile); commit;end;/SQL>show errors此時可以使用DBMS_LOB包的getlength這個procedure來檢測是否已經將該word檔案存入到blob欄位中了。如:SQL> select dbms_lob.getlength(blob_column) from UTL_LOB_TEST;結果如下:DBMS_LOB.GETLENGTH(BLOB_COLUMN)
在internal這個使用者下給scott使用者授權如下:SQL>grant create any directory to scott;SQL>grant create any library to scott;在scott這個使用者下執行下述語句:SQL>create table bfile_tab (bfile_column BFILE);SQL>create table utl_lob_test (blob_column BLOB);SQL>create or replace directory utllobdir as "C:\DDS\EXTPROC";SQL>set serveroutput on然後執行下面語句就將C:\DDS\EXTPROC目錄下的word檔案COM.doc存入到utl_lob_test 表中的blob_column欄位中了。declare a_blob BLOB; a_bfile BFILE := BFILENAME("UTLLOBDIR","COM.doc"); --用來指向外部作業系統檔案begin insert into bfile_tab values (a_bfile) returning bfile_column into a_bfile; insert into utl_lob_test values (empty_blob()) returning blob_column into a_blob; dbms_lob.fileopen(a_bfile); dbms_lob.loadfromfile(a_blob, a_bfile, dbms_lob.getlength(a_bfile)); dbms_lob.fileclose(a_bfile); commit;end;/SQL>show errors此時可以使用DBMS_LOB包的getlength這個procedure來檢測是否已經將該word檔案存入到blob欄位中了。如:SQL> select dbms_lob.getlength(blob_column) from UTL_LOB_TEST;結果如下:DBMS_LOB.GETLENGTH(BLOB_COLUMN)