1、
clob
字段
转
varchar
字段
主要用到dbms_lob.substr方法,该方法有三个参数,分别是截取的
clob
字段
、截取长度以及起始
位
置,其中
字段
名为必须的,截取长度以及其实
位
置可以根据需要使用。首先创建测试表,表中包含三个字典,标识码、
clob
测试
字段
和
varchar
测试
字段
。在表中插入一条测试数据,其中
clob
和
varchar
字段
默认都为空。dbms_lob.substr(
字段
名,长度,起始
位
置)设置
clob
字段
的值为f_str
字段
的值。设置f_str的值为
clob
字段
的值。
a 截取字符串的开始
位
置(注:当a等于0或1时,都是从第一
位
开始截取)
b 要截取的字符串的长度string 需要截取的字符串
a 可以理解为从第a个字符开始截取后面所有的字符串。DBMS_LOB.SUBSTR(field,10,1)表示从第1个字节开始取出10个字节
DBMS_LOB.SUBSTR(field,32767)表示从第1个字节开始取出
VARCHAR
2长度最大值个字节DBMS_LOB.GETLENGTH(field) 判定某个
字段
的长度...
--新增一个
字段
,类型为
VARCHAR
2 长度4000
alter table TABLENAME add FILEDNAME_tmp
VARCHAR
2(4000);
--将要改的
字段
类型
Clob
的列数据更新到新增的列
update TABLENAME set FILEDNAME_tmp=FILEDNAME;
--删除原
Clob
列
alter table...
3.可以使用dbms_lob.substr(
clob
column,4000),对
CLOB
字段
进行截取;截取的长度是4000还是2000根据
存储
的是汉字和数据决定长度;
如果是汉字的话,得将长度设置成为200......
time: 2008/02/29author: skate
oracle
的
clob
转换
varchar
2今天在做一个表的数据转移的时候,发现要他通过比较
clob
字段
,但大家都知道
clob
字段
是无法比较的,所以我就用下面的函数来
转换
to_char(substr(mw.context_,1,1000)) --end--
1、新增一列
varchar
2类型,
varchar
2类型最大4000:alter table test add(c
varchar
2(4000));
2、将
clob
列数据更新到新增列:update test set c=
clob
_col;
3、删除
clob
列:alter table test drop column
clob
_col;
4、将新增列名更改回原来列名:alter t...
多年前写的复制目标数据库指定表的数据到本地表。
程序丢了可惜,分享下。
执行
存储
过程,通过指定目标数据库登录信息,动态生成dblink,打开游标,按批次插入本地指定表中,每批次1万条数据。同步记录和日志信息写在自动生成的sync_log表中。同步完成后自动删除动态生成的
存储
过程、dblink。
本程序不同步blob和
clob
字段
,玩
oracle
的人都懂,用sql同步此类数据,速度上不去,此类数据应该要用导出导入的方式提升速度。
具体请参阅程序,可根据自已需要进行修改。
参数说明:
CREATE OR REPLACE PROCEDURE syncTable(
ip IN
VARCHAR
2,--目标数据库ip地址
port IN NUMBER,--目标数据库端口号
sid
varchar
2,--目标数据库SID
ora_user
VARCHAR
2,--目标数据库登录用户名
passwd
VARCHAR
2,--目标数据库登录密码
src_table_name IN
VARCHAR
2,--目标数据需要同步的表(数据源)
dest_table_name IN
VARCHAR
2,--把目标表同步到本地库的表名,无则创建与目标表一致的表名
errMsg OUT
VARCHAR
2)--输出执行信息。
程序同步到执行结束时的目标表所有数据,不按任何
字段
排序,只判断并记录row_number()到日志表,中断后重新执行可继续同步,如果目标表频繁读写,不保证数据完全正常,故最好是目标表不变动情况下执行同步。
有问题请私信或留言。
判定长度DBMS_LOB.GETLENGTH(col1)
获取文本DBMS_LOB.SUBSTR(col1,n,pos)
如DBMS_LOB.SUBSTR(col1,10,1)表示从第1个字节开始取出10个字节,最大截取4000
alter table KQSERVER add temp
VARCHAR
2(2000);
--将原来
字段
数据赋值到新
字段
update KQSERVER set temp=SERVER_IMG;
--删除原来
字段
alter table KQSERVER drop column SERVER_IMG;
--重命名新
字段
为原
字段
alter table KQSERVER rena...