Oracle clob 操作

--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,1,‘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_amount,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_amount,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,‘89‘,11,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,v_amount,v_offset,str);
      dbms_output.put_line(str); 

end;
时间: 2024-10-04 16:30:36

Oracle clob 操作的相关文章

Oracle clob 操作函数

1 instr(objClob,objstr,beginIndex,appearIndex)objClob:带检索目对象,可以是clob,stringobjstr: 需要验证的字符串beginIndex: 开始检索位置,默认从1开始appearIndex: 出现的位置,默认为1select instr('bbbbbbbbbabbbba','a') from dual;Oracle clob 操作函数,布布扣,bubuko.com

ORACLE日常操作手册

转发自:http://blog.csdn.net/lichangzai/article/details/7955766 以前为开发人员编写的oracle基础操作手册,都基本的oracle操作和SQL语句写法,适合初学者. 因是很久之前写的,文章中可能会存在不准确的地方,希望指正. ORACLE日常操作手册 目录 一.......数据库的启动和关闭...4 1.   数据库的正常启动步骤...4 2.   数据库的正常关闭步骤...4 3.   几种关闭数据库方法对比...4 4.   数据库的启

Java 存储和读取 oracle CLOB 类型字段的实用方法

package oracle.clob; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.Reader; import java.io.StringReader; import java.sql.Connection; import java.sql.DriverManager; import java

jdbc调用 oracle 存储过程操作

创建有参存储函数findEmpNameAndSal(编号),查询7902号员工的的姓名和月薪,[返回多个值,演示out的用法]当返回2个或多个值,必须使用out符号当返回1个值,就无需out符号 create or replace function findEmpNameAndSal(pempno in number,pename out varchar2) return numberas psal emp.sal%type;begin select ename,sal into pename,

基于OCILIB的oracle数据库操作总结及自动生成Model和Dao的工具

基于OCILIB的oracle数据库操作总结 1.       类图 2.       基类BaseOCIDao的设计与实现 BaseOCIDao.h头文件 #pragma once /* --------------------------------------------------------------------------------------------- * * INCLUDES * ----------------------------------------------

Oracle集合操作函数:union、intersect、minus

[转]Oracle集合操作函数:union.intersect.minus 集合操作符专门用于合并多条select 语句的结果,包括:UNION, UNION ALL, INTERSECT, MINUS.当使用集合操作符时,必须确保不同查询的列个数和数据类型匹配. 集合操作符具有以下注意事项: 集合操作符不适用于LOB.VARRAY和嵌套表列. UNION.INTERSECT.MINUS操作符不使用于 LONG列. 如果选择列表中包含有表达式或者函数,那么必须为表达式或者函数定义列别名. 1.U

查询ORACLE数据库操作记录

代码: SELECT a.First_Load_Time,        a.Sql_Text,        s.Sid,        s.Serial#,        s.Program --,        ,        a.* --       Utl_Inaddr.Get_Host_Address(s.Terminal) Ip   FROM V$sqlarea a, V$session s  WHERE s.Sql_Address(+) = a.Address    AND U

(三)Oracle字符串操作

1. Oracle字符串操作 1.1. 字符串函数 1.1.1. CONCAT和"||" CONCAT是字符串连接函数,语法是:CONCAT(char1, char2) 用于返回两个字符串连接后的结果,两个参数char1.char2是要连接的两个字符串.concat只能有两个参数,所以如果连接三个字符串时,需要两个concat函数.比如连接emp表中的name列和salary列,中间用":"隔开: SELECT CONCAT(CONCAT(name, ' : '),

oracle的操作

用了两年Oracle还没写过存储过程,真是十分惭愧,从今天开始学习Oracle存储过程,完全零起点,争取每日一篇学习笔记,可能开始认识的不全面甚至有错误,但坚持下来一定会有收获. 1. 建立一个存储过程 create or replace PROCEDURE firstPro IS BEGIN DBMS_OUTPUT.PUT_LINE('Hello World!'); END; 其中IS关键字替换为AS关键字结果不会出现任何变化,大多认为他们是等同的,但也有一种说法解释为:一般PACKAGE 或