oracle 大对象

来源:互联网 发布:编程一个球从100米落下 编辑:程序博客网 时间:2024/04/30 13:02

1、bfilename(directory,filename) return bfile

2、dbms_lob.loadclobfromfile

      dbms_lob.loadclobfromfile

     (

         dest_lob         in out clob,

         src_bfile          in bfile,

         amount            in number,

         dest_offset      in out number,

         src_offset         in out number,

         bfile_csid        in number,

         lang_context   in out number,

         warning           out number

     )

    amount:=dbms_lob.lobmaxsize;

     bfile_csid number :=dbms_lob.default_csid;

     lang_context number := dbms_lob.default_lang_ctx;

     warning number:=dbms_lob.warn_inconvertible_char

实例:

Declare
 dest_lob t_clob.col_clob%Type;
 src_bfile Bfile;
 amount   Number;
 dest_offset Number:=1;
 src_offset Number:=1;
 bfile_csid Number:= dbms_lob.default_csid; 
 lang_context Number:=dbms_lob.default_lang_ctx;
 warning Number:=dbms_lob.warn_inconvertible_char;
Begin 
  Select col_clob Into dest_lob From t_clob Where Id=1 For Update ;
  src_bfile:=Bfilename('DIR','b.txt');
  dbms_lob.open(src_bfile,dbms_lob.file_readonly);
  amount:=dbms_lob.getlength(src_bfile);
  dbms_lob.loadclobfromfile(dest_lob,src_bfile,amount,dest_offset,src_offset,bfile_csid,lang_context,warning);
  dbms_lob.close(src_bfile);
  Commit;
End;

3、dbms_lob.getlength  获取指定LOB的字节长度

       dbms_lob.getlength

        (

             lob in blob

        ) return number;

       dbms_lob.getlength

        (

             lob in clob|nclob  character  set any_cs

        ) return number;

       dbms_lob.getlength

        (

             bfile in bfile

        ) return number;

实例:
Declare
  src_blob     Blob;
  src_clob     Clob;
  src_bfile    Bfile;
  amount_blob  Number;
  amount_clob  Number;
  amount_bfile Number;
Begin
  Select col_blob Into src_blob From t_blob Where Id=1;
  amount_blob:=dbms_lob.getlength(src_blob);
  dbms_output.put_line('amount_blob='||amount_blob);
  Select col_clob Into src_clob From t_clob Where Id=6;
  amount_clob:=dbms_lob.getlength(src_clob);
  dbms_output.put_line('amount_clob='||amount_clob);
  src_bfile:=Bfilename('DIR','b.txt');
  amount_bfile:=dbms_lob.getlength(src_bfile);
  dbms_output.put_line('amount_bfile='||amount_bfile);
End;

4、dbms_lob.loadblobfromfile

dbms_lob.loadblobfromfile
  (
     dest_lob In Out Blob,
     src_bfile In Bfile,
     amount    In Number,
     dest_offset In Out Number,
     src_offset  In Out Number
  )


实例:
Declare
  dest_lob  Blob;
  src_bfile Bfile;
  amount    Number;
  dest_offset Number:=1;
  src_offset  Number:=1;
  seqid      Number;
Begin
  seqid:=seq_id.nextval;
  Insert Into t_blob Values(seqid,empty_blob());
  Select col_blob Into dest_lob From t_blob Where Id=seqid For Update;
  src_bfile:=Bfilename('DIR','壁纸.jpg');
  --src_bfile:=Bfilename('DIR','b.txt');
  dbms_lob.open(src_bfile,dbms_lob.file_readonly);
  amount:=dbms_lob.getlength(src_bfile);
  dbms_output.put_line(amount);
  dbms_lob.loadblobfromfile(dest_lob,src_bfile,amount,dest_offset,src_offset);
  dbms_lob.close(src_bfile);
  Commit;
End;

5、dbms_lob.open


dbms_lob.open(
  (
     Lob                  In Out Blob,
     open_mode   In Number
  )


dbms_lob.open(
  (
     Lob                  In Out Clob | Nclob Character Set any_cs,
     open_mode   In Number
  )


dbms_lob.open(
  (
     Bfile               In Out Bfile,
     open_mode In Number
  )


open_mode:
   dbms_lob.file_readonly  0
   dbms_lob.lob_readonly   1
   dbms_lob.lob_readwrite  0

6、dbms_lob.close

dbms_lob.close
  (
     Lob In Out  Blob
  )
dbms_lob.close
  (
     Lob In Out  Clob|Nclob Character Set any_cs
  )
dbms_lob.close
  (
     Bfile In Out  Bfile
  )

7、dbms_lob.isopen 返回 1打开 0未打开
dbms_lob.isopen 
  (
     Lob In Blob
  ) Return Number


dbms_lob.isopen
  (
     Lob In Clob|Nclob Character Set any_cs
  ) Return Number


dbms_lob.isopen
  (
     Bfile In Bfile
  ) Return Number
  
实例:
Declare
  src_blob     Blob;
  src_clob     Clob;
  src_nclob    Nclob;
  src_bfile    Bfile;
  amount_blob  Number;
  amount_clob  Number;
  amount_nclob Number;
  amount_bfile Number;
Begin
  Select col_blob Into src_blob From t_blob Where Id=1;
  dbms_lob.open(src_blob,dbms_lob.lob_readonly); 
  If dbms_lob.Isopen(src_blob)=1 Then 
     dbms_output.put_line('src_blob:'||'已打开');
  Else
     dbms_output.put_line('src_blob:'||'未打开');
  End If;
  dbms_lob.close(src_blob);


  Select col_clob Into src_clob From t_clob Where Id=6;
  dbms_lob.open(src_clob,dbms_lob.file_readonly); 
  If dbms_lob.Isopen(src_clob)=1 Then 
     dbms_output.put_line('src_clob:'||'已打开');
  Else
     dbms_output.put_line('src_clob:'||'未打开');
  End If;
  dbms_lob.close(src_clob);
  
  Select col_nclob Into src_nclob From t_nclob Where Id=7;
 -- dbms_lob.open(src_nclob,dbms_lob.file_readonly); 
  If dbms_lob.Isopen(src_nclob)=1 Then 
     dbms_output.put_line('src_nclob:'||'已打开');
  Else
     dbms_output.put_line('src_nclob:'||'未打开');
  End If;
  --dbms_lob.close(src_nclob);
  
  src_bfile:=Bfilename('DIR','b.txt');
  dbms_lob.open(src_bfile,dbms_lob.file_readonly); 
  If dbms_lob.Isopen(src_bfile)=1 Then 
     dbms_output.put_line('src_bfile:'||'已打开');
  Else
     dbms_output.put_line('src_bfile:'||'未打开');
  End If;
  dbms_lob.close(src_bfile);
End;


输出:
src_blob:已打开
src_clob:已打开
src_nclob:未打开
src_bfile:已打开

8、dbms_lob.read
dbms_lob.read
(
   Lob            In           Blob|Clob|Nclob|Bfile,
   amount     In Out    Number,
   Offset        In            Number,
   Buffer        Out         Raw
)


实例:
Declare
  src_blob Blob;
  src_clob Clob;
  src_bfile Bfile;
  amount_blob Number:=5;
  str Varchar2(1000);
Begin
  --blob 图像数据
  Select col_blob Into src_blob From t_blob Where Id=1;
  dbms_lob.open(src_blob,dbms_lob.file_readonly);
  dbms_lob.read(src_blob,amount_blob,1,str);
  dbms_output.put_line('blob 图像数据:'||str);
  dbms_lob.close(src_blob);
  --blob 文字数据
  Select col_blob Into src_blob From t_blob Where Id=4;
  dbms_lob.open(src_blob,dbms_lob.file_readonly);
  dbms_lob.read(src_blob,amount_blob,1,str);
  dbms_output.put_line('blob 文字数据:'||str);
  dbms_lob.close(src_blob);
  
  --clob 文字数据
  Select col_clob Into src_clob From t_clob Where Id=6;
  dbms_lob.open(src_clob,dbms_lob.file_readonly);
  dbms_lob.read(src_clob,amount_blob,1,str);
  dbms_output.put_line('clob 文字数据:'||str);
  dbms_lob.close(src_clob);
 
  --bfile 文字数据
  src_bfile:=Bfilename('DIR','b.txt');
  dbms_lob.open(src_bfile,dbms_lob.file_readonly);
  dbms_lob.read(src_bfile,amount_blob,1,str);
  dbms_output.put_line('bfile 文字数据:'||str);
  dbms_lob.close(src_bfile);
  
  --bfile 图像数据
  src_bfile:=Bfilename('DIR','壁纸.jpg');
  dbms_lob.open(src_bfile,dbms_lob.file_readonly);
  dbms_lob.read(src_bfile,amount_blob,1,str);
  dbms_output.put_line('bfile 图像数据:'||str);
  dbms_lob.close(src_bfile);
End;


输出:
blob 图像数据:FFD8FFE000
blob 文字数据:B1D8D0EBD3
clob 文字数据:必须有固定
bfile 文字数据:B1D8D0EBD3
bfile 图像数据:FFD8FFE000

9、dbms_lob.append

dbms_lob.append
(
  dest_lob in out blob,
  src_lob   in blob 
)


dbms_lob.append
(
  dest_lob in out clob|nclob character set any_cs,
  src_lob   in clob|nclob  character set dest_lob%charaset 
)


实例1:
Declare
  dest_lob    Blob;
  dest_lob1   Blob;
  dest_lob2   Blob;
  src_bfile   Bfile;
  amount      Number;
  dest_offset Number:=1;
  src_offset  Number:=1;
Begin
  --更改dest_lob1的值
  Select colblob Into dest_lob1 From t_blob Where Id=1 For Update;
  src_bfile:=Bfilename('DIR','壁纸.jpg');
  amount:=dbms_lob.getlength(src_bfile);
  dbms_lob.open(src_bfile,dbms_lob.lob_readonly);
  dbms_lob.loadblobfromfile(dest_lob1,src_bfile,amount,dest_offset,src_offset);
  dbms_lob.close(src_bfile);
  Commit;
  
  --更改dest_lob1的值
  dest_offset:=1;
  src_offset:=1;
  Select colblob Into dest_lob2 From t_blob Where Id=2 For Update;
  src_bfile:=Bfilename('DIR','壁纸.jpg');
  amount:=dbms_lob.getlength(src_bfile);
  dbms_lob.open(src_bfile,dbms_lob.lob_readonly);
  dbms_lob.loadblobfromfile(dest_lob2,src_bfile,amount,dest_offset,src_offset);
  dbms_lob.close(src_bfile);
  Commit;
  
  --将dest_lob1,dest_lob2添加到dest_lob中
  Select colblob Into dest_lob From t_blob Where Id=3 For Update;
  dbms_output.put_line('dest_lob:'||dbms_lob.getlength(dest_lob));
  dbms_lob.append(dest_lob,dest_lob1);
  dbms_lob.append(dest_lob,dest_lob2);
  Commit;
  dbms_output.put_line('dest_lob1:'||dbms_lob.getlength(dest_lob1));
  dbms_output.put_line('dest_lob2:'||dbms_lob.getlength(dest_lob2));
  dbms_output.put_line('dest_lob:'||dbms_lob.getlength(dest_lob));
End;
输出:
dest_lob:0
dest_lob1:160999
dest_lob2:160999
dest_lob:321998
实例2:
Declare
  dest_lob    Blob;
  dest_lob4   Blob;
  dest_lob5   Blob;
  src_bfile   Bfile;
  amount      Number;
  dest_offset Number:=1;
  src_offset  Number:=1;
Begin
  --更改dest_lob1的值
  Select colblob Into dest_lob4 From t_blob Where Id=4 For Update;
  src_bfile:=Bfilename('DIR','b.txt');
  amount:=dbms_lob.getlength(src_bfile);
  dbms_lob.open(src_bfile,dbms_lob.lob_readonly);
  dbms_lob.loadblobfromfile(dest_lob4,src_bfile,amount,dest_offset,src_offset);
  dbms_lob.close(src_bfile);
  Commit;
  
  --更改dest_lob1的值
  dest_offset:=1;
  src_offset:=1;
  Select colblob Into dest_lob5 From t_blob Where Id=5 For Update;
  src_bfile:=Bfilename('DIR','c.txt');
  amount:=dbms_lob.getlength(src_bfile);
  dbms_lob.open(src_bfile,dbms_lob.lob_readonly);
  dbms_lob.loadblobfromfile(dest_lob5,src_bfile,amount,dest_offset,src_offset);
  dbms_lob.close(src_bfile);
  Commit;
  
  --将dest_lob1,dest_lob2添加到dest_lob中
  Select colblob Into dest_lob From t_blob Where Id=6 For Update;
  dbms_output.put_line('dest_lob:'||dbms_lob.getlength(dest_lob));
  dbms_lob.append(dest_lob,dest_lob4);
  dbms_lob.append(dest_lob,dest_lob5);
  Commit;
  dbms_output.put_line('dest_lob4:'||dbms_lob.getlength(dest_lob4));
  dbms_output.put_line('dest_lob5:'||dbms_lob.getlength(dest_lob5));
  dbms_output.put_line('dest_lob:'||dbms_lob.getlength(dest_lob));
End;
输出:
dest_lob:0
dest_lob4:14
dest_lob5:2
dest_lob:16


实例3:
Declare
  dest_lob    clob;
  dest_lob1   clob;
  dest_lob2   clob;
  src_bfile   Bfile;
  amount      Number;
  dest_offset Number:=1;
  src_offset  Number:=1;
  bfile_csid  Number:=dbms_lob.default_csid;
  lang_context Number:=dbms_lob.default_lang_ctx;
  warning      Number:=dbms_lob.warn_inconvertible_char;
Begin
  --更改dest_lob1的值
  Select colclob Into dest_lob1 From t_clob Where Id=1 For Update;
  src_bfile:=Bfilename('DIR','b.txt');
  amount:=dbms_lob.getlength(src_bfile);
  dbms_lob.open(src_bfile,dbms_lob.lob_readonly);
  dbms_lob.loadclobfromfile(dest_lob1,src_bfile,amount,dest_offset,src_offset,bfile_csid,lang_context,warning);
  dbms_lob.close(src_bfile);
  Commit;
  
  --更改dest_lob2的值
  dest_offset:=1;
  src_offset:=1;
  Select colclob Into dest_lob2 From t_clob Where Id=2 For Update;
  src_bfile:=Bfilename('DIR','c.txt');
  amount:=dbms_lob.getlength(src_bfile);
  dbms_lob.open(src_bfile,dbms_lob.lob_readonly);
  dbms_lob.loadclobfromfile(dest_lob2,src_bfile,amount,dest_offset,src_offset,bfile_csid,lang_context,warning);
  dbms_lob.close(src_bfile);
  Commit;
  
  --将dest_lob1,dest_lob2添加到dest_lob中
  Select colclob Into dest_lob From t_clob Where Id=3 For Update;
  dbms_output.put_line('dest_lob:'||dbms_lob.getlength(dest_lob));
  dbms_lob.append(dest_lob,dest_lob1);
  dbms_lob.append(dest_lob,dest_lob2);
  Commit;
  dbms_output.put_line('dest_lob1:'||dbms_lob.getlength(dest_lob1));
  dbms_output.put_line('dest_lob2:'||dbms_lob.getlength(dest_lob2));
  dbms_output.put_line('dest_lob:'||dbms_lob.getlength(dest_lob));
End;
输出:
dest_lob:0
dest_lob1:7
dest_lob2:2
dest_lob:9


10、dbms_lob.compare 返回0相同 否则不相同

dbms_lob.compare

(

     lob1        in blob,

     lob2        in blob,

    amount   in number,

    offset1     in number,

    offset2     in number

) Return number

dbms_lob.compare

(

     lob1        in clob|nclob character set any_cs,

     lob2        in clob|nclob charaset  set lob1%charset ,

    amount   in number,

    offset1     in number,

    offset2     in number

) Return number

dbms_lob.compare

(

     lob1        in bfile,

     lob2        in bfile,

    amount   in number,

    offset1     in number,

    offset2     in number

) Return number


11、dbms_lob.copy

dbms_lob.copy
  (
     dest_lob      In Out Blob,
     src_lob        In     Blob,
     amount        In     Number,
     dest_offset  In   Number,
     src_offset    In Number
   )   
dbms_lob.copy
  (
     dest_lob    In Out clob|Nclob Character Set any_cs,
     src_lob      In     clob|Nclob Character Set dest_lob%Charset,
     amount      In     Number,
     dest_offset In   Number,
     src_offset  In Number
   )     
   

实例1:

Declare
  dest_lob1   Blob;
  dest_lob2   Blob;
  amount      Number;
  Offset      Number;
  str         Varchar2(10);
Begin
  Select colblob Into dest_lob1 From t_blob Where Id=3 For Update ;
  Select colblob Into dest_lob2 From t_blob Where Id=4;
  dbms_lob.open(dest_lob1,dbms_lob.lob_readonly);
  amount:=dbms_lob.getlength(dest_lob1);
  dbms_lob.read(dest_lob1,amount,1,str);
  dbms_lob.close(dest_lob1);
  dbms_output.put_line(str);
  dbms_lob.open(dest_lob2,dbms_lob.lob_readonly);
  amount:=dbms_lob.getlength(dest_lob2);
  dbms_lob.read(dest_lob2,amount,1,str);
  dbms_lob.close(dest_lob2);
  dbms_output.put_line(str);
  dbms_lob.copy(dest_lob1,dest_lob2,2,1,2);
  Commit;
  dbms_lob.open(dest_lob1,dbms_lob.lob_readonly);
  amount:=dbms_lob.getlength(dest_lob1);
  dbms_lob.read(dest_lob1,amount,1,str);
  dbms_lob.close(dest_lob1);
  dbms_output.put_line(str);
End;
输出:

616263
616363
636363

实例2:

Declare
  dest_lob1   clob;
  dest_lob2   clob;
  amount      Number;
  Offset      Number;
  str         Varchar2(10);
Begin
  Select colclob Into dest_lob1 From t_clob Where Id=1 For Update ;
  Select colclob Into dest_lob2 From t_clob Where Id=2;
  dbms_lob.open(dest_lob1,dbms_lob.lob_readonly);
  amount:=dbms_lob.getlength(dest_lob1);
  dbms_lob.read(dest_lob1,amount,1,str);
  dbms_lob.close(dest_lob1);
  dbms_output.put_line(str);
  dbms_lob.open(dest_lob2,dbms_lob.lob_readonly);
  amount:=dbms_lob.getlength(dest_lob2);
  dbms_lob.read(dest_lob2,amount,1,str);
  dbms_lob.close(dest_lob2);
  dbms_output.put_line(str);
  dbms_lob.copy(dest_lob1,dest_lob2,2,1,2);
  Commit;
  dbms_lob.open(dest_lob1,dbms_lob.lob_readonly);
  amount:=dbms_lob.getlength(dest_lob1);
  dbms_lob.read(dest_lob1,amount,1,str);
  dbms_lob.close(dest_lob1);
  dbms_output.put_line(str);
End;

输出:

abc
acc
ccc

12、dbms_lob.filecloseall 关闭所有已打开的BFILE对象

Declare
  src_bfile1 Bfile;
  src_bfile2 Bfile;
Begin
  src_bfile1:=Bfilename('DIR','b.txt');
  src_bfile2:=Bfilename('DIR','c.txt');
  dbms_lob.open(src_bfile1,0);
  dbms_lob.open(src_bfile2,0);
  dbms_lob.filecloseall;
End;

13、dbms_lob.fileexists 检测bfile对象所对应的外部文件是否存在,返回1存在 0不存在

dbms_lob.fileexists
  ( 
    Lob In Bfile
  ) Return Number

实例:

Declare
  src_bfile1 Bfile;
  src_bfile2 Bfile;
Begin
  src_bfile1:=Bfilename('DIR','b.txt');
  src_bfile2:=Bfilename('DIR','c.txt');
  If dbms_lob.fileexists(src_bfile1)=1 Then 
     dbms_output.put_line('存在');
  Else
     dbms_output.put_line('不存在');      
  End If;
  If dbms_lob.fileexists(src_bfile2)=1 Then 
     dbms_output.put_line('存在');
  Else
     dbms_output.put_line('不存在');      
  End If;
End;

输出:

存在
不存在

14、dbms_lob.filegetname 返回bfile对象的目录和文件名

dbms_lob.filegetname
(
   Bfile     In Bfile,
   Directory Out Varchar2,
   filename  Out Varchar2
)   

实例:

Declare
  src_bfile Bfile;
  strDir    Varchar2(100);
  strFile   Varchar2(100);
Begin
  src_bfile:=Bfilename('DIR','b.txt');
  dbms_lob.filegetname(src_bfile,strdir,strfile);
  dbms_output.put_line(strdir);
  dbms_output.put_line(strfile);
End;

输出:

DIR
b.txt

15、dbms_lob.erase

dbms_lob.erase 
(
  Lob          In Out Blob,
  amount   In Out Number,
  Offset      In Number
)


dbms_lob.erase 
(
  Lob          In Out Clob|Nclob,
  amount   In Out Number,
  Offset      In Number
)

实例1:

Declare
  dest_lob    Blob;
  amount      Number;
  Offset      Number;
  str         Varchar2(100);
Begin
  Select colblob Into dest_lob From t_blob Where Id=4 For Update ;
  dbms_lob.open(dest_lob,dbms_lob.lob_readonly);
  amount:=dbms_lob.getlength(dest_lob);
  dbms_lob.read(dest_lob,amount,1,str);
  dbms_lob.close(dest_lob);
  dbms_output.put_line(str);
  amount:=1;
  dbms_lob.erase(dest_lob,amount,2);
  amount:=dbms_lob.getlength(dest_lob);
  dbms_lob.open(dest_lob,dbms_lob.lob_readonly);
  dbms_lob.read(dest_lob,amount,1,str);
  dbms_lob.close(dest_lob);
  dbms_output.put_line(str);
End;

输出:

616363
610063

实例2:

Declare
  dest_lob    clob;
  amount      Number;
  Offset      Number;
  str         Varchar2(100);
Begin
  Select colclob Into dest_lob From t_clob Where Id=2 For Update ;
  dbms_lob.open(dest_lob,dbms_lob.lob_readonly);
  amount:=dbms_lob.getlength(dest_lob);
  dbms_lob.read(dest_lob,amount,1,str);
  dbms_lob.close(dest_lob);
  dbms_output.put_line(str);
  amount:=1;
  dbms_lob.erase(dest_lob,amount,2);
  amount:=dbms_lob.getlength(dest_lob);
  dbms_lob.open(dest_lob,dbms_lob.lob_readonly);
  dbms_lob.read(dest_lob,amount,1,str);
  dbms_lob.close(dest_lob);
  dbms_output.put_line(str);
End;
输出:

acc
a c
16、dbms_lob.getCHUNKsize(lob  in blob|clob|nclob )

17、dbms_lob.get_storage_limit(lob in blob|clob|nclob)

18、dbms_lob.instr

dbms_lob.instr 
(
   Lob        In    Blob,
   pattern  In    Raw,
   Offset    In    Number,
   nth         In    Number 
) Return Number


dbms_lob.instr 
(
   Lob        In    clob|Nclob Character Set any_cs,
   pattern  In    Varchar2  Character Set Lob%Charset,
   Offset    In    Number,
   nth         In    Number 
) Return Number


dbms_lob.instr 
(
   Bfile       In    Bfile,
   pattern  In    Raw,
   Offset    In    Number,
   nth         In    Number 
) Return Number

实例:

Declare 
  src_lob Blob;
  amount  Number;
  Offset  Number:=1;
  str     Varchar2(100);
Begin
  --src_lob内容为:abc
  Select colblob Into src_lob From t_blob Where Id=3;
  dbms_lob.open(src_lob,0);
  amount:=dbms_lob.getlength(src_lob);
  dbms_output.put_line(amount);
  dbms_lob.read(src_lob,amount,Offset,str);
  dbms_lob.close(src_lob);
  dbms_output.put_line(str);
  dbms_output.put_line(dbms_lob.instr(src_lob,'62',2,1));
End;

输出:

3
616263
2

19、dbms_lob.write 

dbms_lob.write
(
   Lob In Out Blob ,
   amount In Number,
   Offset In Number,
   Buffer In Raw
)
dbms_lob.write
(
   Lob In Out clob|Nclob Character Set any_cs ,
   amount In Number,
   Offset In Number,
   Buffer In Raw Character Set Lob%Charset 
)

实例1:

Declare 
  src_lob Blob;
  amount  Number;
  Offset  Number:=1;
  str     Varchar2(100);
Begin
  Select colblob Into src_lob From t_blob Where Id=3 For Update ;
  dbms_lob.open(src_lob,dbms_lob.lob_readwrite);
  dbms_lob.write(src_lob,2,2,'616263');
  dbms_lob.close(src_lob);
End;
--将abc 616263 更新为aab 616162
实例2:
Declare 
  src_lob clob;
Begin
  Select colclob Into src_lob From t_clob Where Id=1 For Update ;
  dbms_lob.open(src_lob,dbms_lob.lob_readwrite);
  dbms_lob.write(src_lob,2,2,'abc');
  dbms_lob.close(src_lob);
End;
--将abc更新为aab

20、dbms_lob.writeappend

dbms_lob.writeappend
(
   Lob In Out Blob ,
   amount In Number,
   Buffer In Raw
)
dbms_lob.writeappend
(
   Lob In Out clob|Nclob Character Set any_cs ,
   amount In Number,
   Buffer In Raw Character Set Lob%Charset 
)

22、dbms_lob.substr

dbms_lob.substr
(
   Lob In Blob,
   amount In Number,
   Offset In Number
) Return Raw
dbms_lob.substr
(
   Bfile  In Bfile,
   amount In Number,
   Offset In Number
) Return Raw
dbms_lob.substr
(
   Lob In Clob|Nclob Character Set any_cs,
   amount In Number,
   Offset In Number
) Return Varchar2 Character ste Lob%Charset 

0 0
原创粉丝点击