Oracle clob 操作

概述:要先取得clob定位器并锁定记录,缓冲区最大长度32767,超过要多次写入Selectclob_testIntov_clob2Fromtest_lobWherelob_id=1--Updatetest_lobSetclob_test=v_clob1Wherelob_id=1dbms_lob.write(v_clob2,

概述:要先取得clob定位器并锁定记录,缓冲区最大长度32767,超过要多次写入Selectclob_testIntov_clob2Fromtest_lobWherelob_id=1–Updatetest_lobSetclob_test=v_clob1Wherelob_id=1dbms_lob.write(v_clob2,。


--Oracle clob 操作
-- Created on 2015/4/8 by TianPing
declare 
  -- Local variables here
  v_clob1 Clob
  v_clob2 Clob
  v_amount Int  --长度
  v_offset Int --偏移量
  
  str varchar2(100)
Begin   
       
 --初始或清空clob变量
      dbms_lob.createtemporary(v_clob1,True)   
      dbms_lob.createtemporary(v_clob2,True)

 --向clob变量写入字符
      dbms_lob.write(v_clob1,30,1,‘123456789012345678901234567890‘)
      dbms_output.put_line(v_clob1)

 --初始或清空clob字段
      Update test_lob Set clob_test=empty_clob() Where lob_id=1      

      --写入clob字段。要先取得clob定位器并锁定记录,缓冲区最大长度32767,超 过要多次写入
       Select clob_test Into v_clob2  From test_lob Where lob_id=1

     -- Update test_lob Set clob_test=v_clob1 Where lob_id=1
     dbms_lob.write(v_clob2,26,‘abcdefghijklmnopkrstuvwxyz‘)

      --取clob字段定位器
      Select clob_test Into v_clob1  From test_lob Where lob_id=1 
      dbms_output.put_line(v_clob1)

      --向clob变量写入字符串
         v_amount:=26  --写入长度
        v_offset:=21    --开始写入位置
      dbms_lob.write(v_clob1,v_amount,v_offset,‘abcdefghijklmnopkrstuvwxyz‘)
      dbms_output.put_line(v_clob1)

      --擦除clob变量部份字符串,擦掉部份用空格代替
         v_amount:=5  --擦除长度
        v_offset:=31    --开始擦除位置
      dbms_lob.erase(v_clob1,v_offset)
      dbms_output.put_line(v_clob1)

      --截取clob前面部份字符串
         v_amount:=20  --截取长度
      dbms_lob.trim(v_clob1,v_amount)
      dbms_output.put_line(v_clob1)      

            --截取clob部份字符串,注意substr是一个函数而不是一个存储过程,不修改clob变量的值
         v_amount:=11  --截取长度
        v_offset:=3    --开始截位置
      dbms_output.put_line(dbms_lob.substr(v_clob1,v_offset))
        dbms_output.put_line(v_clob1)      

            --查找clob中字符串‘89‘从第11个字符开始第1次出现的位置
      dbms_output.put_line(dbms_lob.instr(v_clob1,‘89‘,11,1))

             --查找clob中字符串‘89‘从第5个字符开始第2次出现的位置,如不出现返回0
      dbms_output.put_line(dbms_lob.instr(v_clob1,2))  

     
 --取clob对象长度
      dbms_output.put_line(dbms_lob.getlength(v_clob1))  
          
  
--把缓冲区字串添加到clob对象尾部,缓冲区最大长度32767,超 过要多次写入
      str:=‘abcdefghijklmnopqrstuvwxyz‘
      dbms_lob.append(v_clob1,str)      
        dbms_output.put_line(v_clob1)    
      
    
  --截取缓冲区前5个字符添加到clob对象尾部
      str:=‘1234567890‘
      dbms_lob.writeappend(v_clob1,5,str)      
        dbms_output.put_line(v_clob1)    
      
     
 --读部份字串到缓冲区
          v_amount:=26  --读取长度
        v_offset:=21    --开始读取位置
      dbms_lob.read(v_clob1,str)
      dbms_output.put_line(str) 

end


总结

以上是为你收集整理的Oracle clob 操作全部内容,希望文章能够帮你解决Oracle clob 操作所遇到的程序开发问题。

0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论