如何将CLOB类型字段的值转到VARCHAR2类型的字段中?

zcs_1 2002-08-20 09:00:35
如:

1、建立一个包含有clob和varchar2两种字段类型的表:

CREATE TABLE T1(
ID NUMBER PRIMARY KEY,
TXT1 CLOB,
TXT2 VARCHAR2(4000));

2、向表中插入记录
INSERT INTO T1(ID,TXT1) VALUES(1,'CLOB TEST');
COMMIT;

如何将使txt2字段的值等于txt1字段中的字符串"CLOB TEST"呢?
我这样试过了,不行.

SQL> update t1 set txt2=txt1;
update t1 set txt2=txt1
*
ERROR 位于第 1 行:
ORA-00932: 数据类型不一致
...全文
282 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcs_1 2002-08-20
  • 打赏
  • 举报
回复
up
jlandzpa 2002-08-20
  • 打赏
  • 举报
回复
--sql即可
15:03:41 jlanzpa817>update t1 set txt2 = dbms_lob.substr(txt1,100,1);
已更新 1 行。
已用时间: 00: 00: 00.20
15:03:53 jlanzpa817>commit;
提交完成。
已用时间: 00: 00: 00.00
15:03:55 jlanzpa817>select * from t1;

ID TXT1 TXT2
1 CLOB TEST CLOB TEST

已用时间: 00: 00: 00.30
zcs_1 2002-08-20
  • 打赏
  • 举报
回复
感谢jlandzpa(ORA-00600) ,能否给出过程的代码,帮助我所举的例子中的
表t1的txt2字段替换。

请多帮助,谢谢。
jlandzpa 2002-08-20
  • 打赏
  • 举报
回复
楼上的不行.

可以写一个过程:
use dbms_lob.substr is one very simple way.
You can write plsql and use dbms_lob.read as well.
entice 2002-08-20
  • 打赏
  • 举报
回复
update t1 set txt2=to_char(txt1);

这样行不行,我没有试
zcs_1 2002-08-20
  • 打赏
  • 举报
回复
up

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧