91嫩草国产线免费观看_欧美日韩中文字幕在线观看_精品精品国产高清a毛片_六月婷婷网 - 一级一级特黄女人精品毛片

要想用oracal數據庫來存word文檔,該用什么字段呀?

首頁 > 身份戶籍2021-06-28 01:58:13

如何將WORD文檔放入ORACLE

我要實現(xiàn)一個簡歷管理系統(tǒng),把簡歷(word文檔)上傳到數據庫里,然后還要下載下來,請問一下如何:rn1)定義數據庫字段屬性rn2)如何鏈接數據庫與系統(tǒng)?rn回答完備有加分哦。。。先謝謝啦。
將WORD文檔放入ORACLE有兩種方式,一是文件采用文件系統(tǒng)存儲,數據庫只存放文件的相對路徑,二是存入BLOB類型字段中。
這里比較推薦第一種方式,便于數據及文件管理,方便導入導出,缺點是容易造成數據與文件內容不一致,文件管理與ORACLE關系不大。
重點說一下第二種方式即BLOB\CLOB方式,對于內容不大的可直接存取BLOB,太大的文件借助目錄文件。
reate or replace procedure TEST_BLOB_INS (FBuffer IN VARChAR2) IS
DEST_LOB BLOB;
WRITE_AMOUNT INTEGER ;
BEGIN
--FILE_CONTENT為指定大字段

UPDATE XXTABLE SET FILE_CONTENT=EMPTY_BLOB() WHERE ID= 999 ;
SELECT FILE_CONTENT INTO DEST_LOB FROM XXTABLE WHERE ID = 999 FOR UPDATE;
DBMS_LOB.OPEN(DEST_LOB,DBMS_LOB.LOB_READWRITE);
WRITE_AMOUNT := LENGTHB(WR_BUFFER) ;
DBMS_LOB.WRITE(DEST_LOB, WRITE_AMOUNT, 1, UTL_RAW.cast_to_raw(WR_BUFFER));
DBMS_LOB.CLOSE(DEST_LOB);
COMMIT;
END TEST_BLOB;
借助目錄方式在存?。?br />具體過程:
A,首先請DBA在控制臺創(chuàng)建目錄記錄
CREATE OR REPLACE DIRECTORY MY_DIR as '/home/jsp';

-- 可使用 select * from dba_directories 進行查詢是否創(chuàng)建成功;

B,再將新建的MY_DIR目錄別名授權給指定用戶使用
GRANT READ,WRITE on DIRECTORY MY_DIR TO user_cms ;

C,將擬存入數據庫的文件上傳至服務器的/home/jsp目錄下
D,再使用以下過程進行文件讀出并寫入數據庫, FName 為文件名, RecID為指定表記錄的ID
create or replace procedure TEST_BLOB_FILEINS(RECID IN INTEGER,FName IN VARCHAR2) IS
DEST_LOB BLOB;
V_FILE BFILE ;
V_Fsize INTEGER ;
BEGIN
V_FILE := BFILENAME('MY_DIR', FName);
UPDATE xxTAble SET FILE_CONTENT=EMPTY_BLOB() WHERE ID= RECID RETURN FILE_CONTENT INTO DEST_LOB;
v_FSize := DBMS_LOB.GETLENGTH(v_file);
DBMS_OUTPUT.PUT_LINE('File size: ' || v_Fsize);
DBMS_LOB.FILEOPEN(V_FILE);
DBMS_LOB.LOADFROMFILE(DEST_LOB, V_FILE, DBMS_LOB.LOBMAXSIZE);
DBMS_LOB.FILECLOSEALL;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('在更新BLOB內容時不成功,ID=' || RECID ) ;
END TEST_BLOB;
數據提取過程
create or replace procedure download_blob(srcname varchar2, dstname varchar2) as
mount binary_integer := 32767;
fbuffer raw(32767);
utlfile utl_file.file_type;
dumpfile blob;
pos integer := 1;
len binary_integer;
begin
select blob_file into dumpfile from blob_tb where data_name = srcname;
len := dbms_lob.getlength(dumpfile);
utlfile := utl_file.fopen('MY_DIR', dstname, 'wb', 32767);
while pos < len loop
dbms_lob.read(dumpfile, mount, pos, fbuffer);
utl_file.put_raw(utlfile, fbuffer, true);
pos := pos + mount;
end loop;
utl_file.fclose(utlfile);
end;
字段類型用blob,先把blob設成空然后再操作,我用的是upload_5xsoft.inc(asp人都知道),顯示的時候就用數據流寫出即可。代碼如下
寫入:
sql = "update d_doc_modi_rec set doc_content=empty_blob() where doc_no='"&doc_no&"' and version='"&maxver&"'"
Oradatabase.dbEXECUTESQL(sql)
Selsql ="select * from d_doc_modi_rec where doc_no='"&doc_no&"' and version='"&maxver&"'"
file.SavetoDB Selsql,feild

Public function SavetoDB(Selstr,area)

dim rsDB,ErrorChar,dr
if selstr="" or area="" then exit function
set rsDB=Oradatabase.dbcreatedynaset(Selstr,0)
set dr=CreateObject("Adodb.Stream")
dr.Mode=3
dr.Type=1
dr.Open
dr.position=0
'dr.Type = 2
'dr.Charset = "gb2312"
path = filepath&filename
dr.LoadFromFile path
chunk=dr.read
chunksize=lenb(chunk)
'response.end
set infoblob=rsDB.fields(area).value
rsDB.Edit
infoblob.offset=1
amount_written=infoblob.write (chunk,chunksize)
rsDB.update
dr.close
set amount_written = nothing
rsDB.close
end function
沒有人會來給你設計數據庫的,你可以用blob,上傳文件,然后下載
數據庫中只是存放路徑,拜托!
你需要有文件服務器來存放文檔,然后在數據庫中記錄文檔在文件服務器中的下載路徑。正常都是這么實現(xiàn)的。

WORD文檔能直接存入ORACLE數據庫嗎

當然可以啊,Oracle字段類型BLOB就是用來存儲大的二進制文件,不過這個字段你不能通過insert語句就能完成數據的插入,讀寫也比較麻煩,你要確定使用這種方法的可用性,很少有這么做的,文件的存儲可以使用文件管理器來做么,比如SVN之類的,
可以用blob或者clob存

oracle數據庫怎么存儲長文本的字段

BLOB :大數據類型,最大存儲65K,不可以被導出,只能在oracle數據庫中進行查看。 擴展: BLOB (binary large object),二進制大對象,是一個可以存儲二進制文件的容器。在計算機中,BLOB常常是數據庫中用來存儲二進制文件的字段類型。

在Oracle里存入大數據的時候,用什么字段類型?

超過nvarchar(4000)的話,rn在建表的時候,數據類型寫什么?長度怎么限定?rn謝謝??捎玫脑捈臃?0
clob 類型就可以。

**************
補充:
**************
1,按存儲數據的類型分:
①字符類型:
CLOB:存儲大量 單字節(jié) 字符數據。
NLOB:存儲定寬 多字節(jié) 字符數據。
②二進制類型:
BLOB:存儲較大無結構的二進制數據。

如上,自己斟酌。。
long
raw
clob

相關推薦:

人口普查能上戶口嗎(人口普查可以給孩子上戶口嗎)

身份證遺失如何辦理(公民身份證遺失如何補辦)

網貸逾期怎么處罰(網貸逾期會怎么樣會受到什么處罰)

離婚后如何遷戶口(離婚后戶口怎么遷出來)

房子拆遷和戶口有關嗎(拆遷和戶口本上所有人都有關嗎)

熱門標簽