首先在数据库后台创建两个过程,主要是用来往clob里面清除,添加内容
create or replace procedure ClearArticleClob(SerialNumber number) is
-- 功能说明:将clob字段的内容清空
-- Author: Jrosion
-- Date: 2005-12-05
-- 参数说明:
-- SerialNumber: 序号
begin
update www_article t set t.areticecontent = empty_clob() where ARTICLEID = SerialNumber;
commit;
end ClearArticleClob;
create or replace procedure writeArticleClob(concent varchar2,serialNumber number) is
-- 将字符串保存到clob类型的字段里面去
-- Author: Jrosion
-- Date: 2005-12-05
-- 参数说明:
-- concent: 文章内容
-- serialNumber:文章序号
v_buff varchar2(4000);
v_clob clob;
v_amt BINARY_INTEGER;
begin
v_buff := concent;
v_amt := length(v_buff);
select ARETICECONTENT into v_clob from www_article where ARTICLEID = serialNumber for update;
dbms_lob.writeappend(v_clob,v_amt,v_buff);
commit;
end writeArticleClob;
其中将上面的表名和字段替换成自己的就可以了。
在asp里面写如下代码就去读取内容,然后把内容通过执行后台的过程把内容写进去。
表单:areticeContent项(也就是clob字段的内容)
For concentILoop = 1 To Request.Form("areticeContent").Count
areticeContent = Request.Form("areticeContent")(concentILoop)
dim contentLen,midLoop,lloop,currentContent,startPosion
areticeContent = replace(areticeContent,"'","''")
'去掉多余的换行
areticeContent = replace(areticeContent,"<p> </p>","")
areticeContent = replace(areticeContent," "," ")
contentLen = len(areticeContent)
if concentILoop = 1 then
conn.execute " ClearArticleClob("&articleID&")"
end if
if contentLen > 1999 then
if contentLen mod 2000 = 0 then
midLoop = contentLen/2000
else
midLoop = Int(contentLen/2000) + 1
end if
startPosion = 1
for lloop=1 to midLoop
currentContent = mid(areticeContent,startPosion,2000)
conn.execute "writeArticleClob ('"¤tContent&"',"&articleID&")"
startPosion = startPosion + 2000
next
else
conn.execute "writeArticleClob ('"&areticeContent&"',"&articleID&")"
end if
next