PL/SQL 插入clob欄位處理

mahanso發表於2010-11-29
      今天處理clob欄位,學習到很多知識,現在總結一下:
 
       今天同事要求把一個clob欄位的資料,做成一個text指令碼。雖然需求很奇怪,但是儘量滿足要求。
 
        本以為可以用varchar2做一箇中轉站,完成任務。但是clob欄位中的字元超出4000,沒有簡單的完成任務。
 
       只能透過流的方法插入了,在oracle開發環境中我們可以用dbms_lob包來處理.
 
讀資料方法:
 
 dbms_lob.write(引數1,引數2,引數3,引數4)
引數1:具體要插入的資料
引數2:每次讀一定量的字元,放入到緩衝區
引數3:開始讀取字元的位置
引數4:結束讀取字元的位置
 
例項:
DECLARE     
    
  v_clob   CLOB;    
   
  buffer   VARCHAR2(2000);    
   
  amount   NUMBER   :=   20;    
   
  offset   NUMBER   :=   1;    
   
  BEGIN    
   
  --初始化要寫入的資料  
   
  buffer   :=   'This   is   a   writing   example';    
   
  amount   :=   length(buffer);    
   
  SELECT   document   INTO   lobloc--   獲取定位器並鎖定行  
   
  FROMview_sites_info    
   
  WHERE   site_id   =   100   FOR   UPDATE;    
   
  dbms_lob.write(lobloc,amount,1,buffer);    
   
  COMMIT;    
   
  END;    
   
  /

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

相關文章