--表的clob列直接可以插入到varchar2的列中吗
--1,建立包含clob列的表及包含varchar列的表,并插入数据到t_test_clob表
create table t_test_clob(a clob);
create table t_test_varchar2(a varchar2(100));
insert into t_test_clob values('insert clob data');--说明不用转换直接可以把字符数据插入到clob列
--2,插入t_test_clob到t_test_varchar2表中
insert into t_test_varchar2(a)
select a from t_test_clob;--说明可以直接把clob插入到varchar2列的表中
--3,加大t_test_clob中列的数据内容长度,然后再次重运2,看是否可以直接插入
insert into t_test_clob values('insert clob data insert clob data insert clob data insert clob data insert clob data insert clob data insert clob data insert clob data insert clob data insert clob data
insert clob data insert clob data insert clob data insert clob data insert clob data insert clob data insert clob data insert clob data insert clob data insert clob data insert clob data insert clob data');
--4,查询t_test_clob表的clob列的长度
select length(a) from t_test_clob;--新插入的列内容长度为373
--5,运行2,看可否插入
insert into t_test_varchar2(a)
select a from t_test_clob;--此时就报ORA-12899: 列 "NPOS"."T_TEST_VARCHAR2"."A" 的值太大 (实际值: 373, 最大值: 100)
--6,小结:字符数据可以直接插入到clob列,不用转换
自clob列插入到字符列中,要注意clob列的内容长度是否与字符列的最大长度相匹配,可采用加大字符列长度或者substr截短clob列
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9240380/viewspace-745258/
,如需转载,请注明出处,否则将追究法律责任。