Case1:
需求:需要把字段(line_text)的类型从varchar2 转成clob以容纳多于4000字节的内容。
方案:不转成clob, 而是把内容拆分成并存储在多个line_text中,创建一个view, 让line_text = line_text1||line_text2||line_text3..
这样真的可行吗?
Step1:
create table T_VARCHAR2_CLOB
( sc_no number,
line_text1 varchar2(4000),
line_text2 varchar2(4000),
line_text3 varchar2(4000)
)
/
Srep2:
插入一条记录,其中line_text1,line_text2,line_text3的长度均为3999。
Step3:
create or replace view V_VARCHAR2_CLOB
as select sc_no as sc_no, line_text1,
line_text1||line_text2||line_text3 as line_text
from T_VARCHAR2_CLOB;
Step4:
验证,
select length(line_text1)
from V_VARCHAR2_CLOB
where rownum<2;
3999
可见view是validate.
select length(line_text)
from V_VARCHAR2_CLOB
where rownum<2;
ORA-01489:字符串连接的结果过长
可见该方法不行。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/781883/viewspace-679732/ ,如需转载,请注明出处,否则将追究法律责任。