博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle中,将VARCHAR2类型的字符串写入BLOB类型的字段中。
阅读量:4184 次
发布时间:2019-05-26

本文共 1055 字,大约阅读时间需要 3 分钟。

1、在数据库中建一个新表用于测试。

CREATE TBALE TB_TEST 
(
    ID NUMBER,
    BLB BLOB
);
COMMIT;

2、往TB_TEST表中插入一条新记录用于测试。

INSERT INTO TB_TEST VALUES(1, EMPTY_BLOB());
COMMIT;
注:往有BLOB类型的字段的数据表中插入新记录,不能直接填入值,必须先往BLOB字段插入一个EMPTY_BLOB(),然后再用DBMS_LOB.WRITE函数写入BLOB的值。

3、向ID为1的记录的BLB字段写入以下字符串:'Follow I-75 across the Mackinac Bridge.你好!';

declare
    directions BLOB;
   
    amount BINARY_INTEGER;
    offset INTEGER;
    first_direction VARCHAR2(100);
    more_directions VARCHAR2(500);
begin
    update tb_test set blb = empty_blob() where id = 1;      --更新和新增一样要将BLOB字段设置为EMPTY_BLOB()
    select blb into directions from tb_test where id = 1 for update; --一定要用for update锁住记录,否则        
                                                                                                                   --DBMS_LOB.OPEN会出错

    DBMS_LOB.OPEN(directions, DBMS_LOB.LOB_READWRITE);

    first_direction := 'Follow I-75 across the Mackinac Bridge.你好!';
    amount := LENGTHB(first_direction);  --number of characters to write
                                                                         --有中文必须用LENGTHB
       offset := 1; --begin writing to the first character of the CLOB
        DBMS_LOB.WRITE(directions, amount, offset, UTL_RAW.cast_to_raw(first_direction));
        --UTL_RAW.cast_to_raw函数将字符串转换成二进制数

    DBMS_LOB.CLOSE(directions);

    commit;
end;

转载地址:http://oxyoi.baihongyu.com/

你可能感兴趣的文章
Greenplum性能调优
查看>>
gp性能管理
查看>>
linux的清屏命令
查看>>
maven打jar包
查看>>
Win10系统ie浏览器打不开网页的2种解决方法
查看>>
自己搭建一套hadoop的运行环境
查看>>
本次装的hadoop版本是hadoop1.2的版本
查看>>
跳板机SecureCRT
查看>>
namenode的log时,散仙发现有如下的警告信息
查看>>
用过eclipse直接向hadoop提交MR作业
查看>>
在执行bin/hadoop checknative 命令时
查看>>
MapReduce作业
查看>>
去连接Linux系统上的HDFS
查看>>
在eclipse中远程连接并读取数据
查看>>
处理多个类似表的txt数据
查看>>
两种hadoop集群(CDH的和Apache的))在使用过程中遇到
查看>>
在hadoop的编程中输入输出参数路径的设定
查看>>
PV、UV、IP的区别
查看>>
Hadoop2.2内存参数模板
查看>>
hue的架构图
查看>>