你的位置:
问答吧
-> Oracle
-> 问题详情
如何将Clob类型改成Varchar类型?
我从Mysql 导入到oracle数据表,以前的Mysql用的text类型的变成clob类型,
我想把现在oracle中clob类型改成varchar,不成功,在 10.2G的里面不行,数据库表中已经有数据了
作者: zhp
发布时间: 2010-11-07
1、新增一列varchar2类型,varchar2类型最大4000:alter table test add(c varchar2(4000));
2、将clob列数据更新到新增列:update test set c=clob_col;
3、删除clob列:alter table test drop column clob_col;
4、将新增列名更改回原来列名:alter table test rename column c to clob_col;
作者: tangren
发布时间: 2010-11-07
能不能用程序直接改,因为数据太多了180W的数据,导库太费时间
作者: zhp
发布时间: 2010-11-07
CREATE OR REPLACE FUNCTION clob_to_varchar(data CLOB) RETURN VARCHAR2 IS
buffer VARCHAR2(4000);
amt BINARY_INTEGER := 4000;
position INTEGER := 1;
l_var VARCHAR2(4000):='';
BEGIN
LOOP
IF dbms_lob.getlength(data)<=4000 THEN
dbms_lob.READ (data, amt, position, buffer);
l_var := l_var||buffer;
position:=position+amt;
ELSE
l_var:= 'Cannot convert to varchar2..Exceeding varchar2 field limit';
EXIT;
END IF;
END LOOP;
RETURN l_var;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN l_var;
END;
这是高手给我写的程序,但是clob_to_varchar(data CLOB)中的data CLOB是什么参数
作者: zhp
发布时间: 2010-11-07