溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ORACLE LOB 大對象處理

發布時間:2020-06-11 21:27:20 來源:網絡 閱讀:749 作者:cocoolwen 欄目:關系型數據庫

LOB大對象處理:主要是用來存儲大量數據的數據庫字段,最大可以存儲4G字節的非結構化數據。主要介紹字符類型和二進制文件類型LOB數據的存儲,單獨介紹二進制類型LOB數據的存儲。


.  Oracle中的LOB數據類型分類
1
,按存儲數據的類型分:
字符類型:
  CLOB:
存儲大量單字節字符數據。
  NLOB:
存儲定寬多字節字符數據。
二進制類型:
  BLOB:
存儲較大無結構的二進制數據。
二進制文件類型:
  BFILE:
將二進制文件存儲在數據庫外部的操作系統文件中。存放文件路徑。

2
,按存儲方式分:
存儲在內部表空間:
   CLOB
,NLOBBLOB
 
指向外部操作系統文件:
   BFILE


二、大對象處理方法。參考書 美河提供.精通Oracle.10g.Pl.SQL編程

1、DBMS_LOB.Read():從LOB數據中讀取指定長度數據到緩沖區的過程。

    DBMS_LOB.Read(LOB數據,指定長度,起始位置,

存儲返回LOB類型值變量);

2、DBMS_LOB.SubStr():LOB數據中提取子字符串的函數。

    DBMS_LOB.SubStr(LOB數據,指定提取長度,提取起始位置): 

DBMS_LOB.InStr():從LOB數據中查找子字符串位置的函數。
   DBMS_LOB.InStr(LOB
數據, 子字符串);

DBMS_LOB.GetLength():返回指定LOB數據的長度的函數。
   DBMS_LOB.GetLength(LOB數據);

DBMS_LOB.Compare():比較二個大對象是否相等。返回數值0為相等,-1為不相等。
   DBMS_LOB.Compare(LOB
數據,LOB數據);

6、DBMS_LOB.Write():將指定數量的數據寫入LOB的過程。
   DBMS_LOB.Write(
被寫入LOB, 寫入長度(指寫入LOB數據),寫入起始位置(指被寫入LOB),寫入LOB數據);

7、DBMS_LOB.Append():將指定的LOB數據追加到指定的LOB數據后的過程。
   DBMS_LOB.Append(LOB
數據,LOB數據);

8、DBMS_LOB.Erase():刪除LOB數據中指定位置的部分數據的過程;
   DBMS_LOB.Erase(LOB
數據,指定刪除長度, 開始刪除位置);

9、DBMS_LOB.Trim():截斷LOB數據中從第一位置開始指定長度的部分數據的過程;
   DBMS_LOB.Trim(LOB
數據,截斷長度);

10、DBMS_LOB.Copy():從指定位置開始將源LOB復制到目標LOB;
   DBMS_LOB.Copy(
LOB,目標LOB,復制源LOB長度,復制到目標LOB開始位置,復制源LOB開始位置)


例如:循環輸出xml大數據內容

declare

amount number;

buf varchar2(10000) := '';

temp varchar2(1000) := '';

begin 

  amount := 1;

  for i in 1..200 loop

    temp := '';

    select dbms_lob.substr(krm.doc_content(clob類型),400,amount) into temp from km_review_main/*@ekp_link*/ krm

    where krm.fd_id = '138eb83e89178bcce17136b43f8ab176';

    amount := amount + 400;

    DBMS_OUTPUT.put_line(temp);

  end loop;

  end;




參考網站:

http://blog.csdn.net/tianlesoftware/article/details/5070981




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女