请各位达人帮忙看看那里出错了!
采集了许多新闻,可是遇到有分页的采集的结果里就会出现,"本新闻共%页,当前第%页....."这类讨厌的字,
所以想写个过程替换之,可是过程写出来了,我检查过了没有错误,就是创建不起来...搞了半天,头昏脑胀,呕吐不止啊
特来向各位达人求救,还望不吝赐教!感激涕淋!!![em06]
create proc test1
as
begin
declare @i int
declare @j int
declare @ii int
declare @jj int
declare @id int
declare @ptr binary(16)
select @i = 0
select @j = 0
select @ii = 0
select @jj = 0
if( EXISTS(SELECT name from sysobjects where name='test_news' and xtype='u') )
begin
delete test_news
insert into test_news select * from fs_news order by id
end
else
begin
select * into test_news from fs_news order by id
end
select * into #fs_news from fs_news where 1=2
-- EXEC sp_dboption 'test_news', 'select into/bulkcopy', 'true'
-- EXEC sp_dboption 'fs_news', 'select into/bulkcopy', 'true'
declare cur cursor for
select id from test_news
open cur
fetch cur into @id
while (@@fetch_status <> -1)
begin
select @i = 0
while(1=1)
begin -- 去掉本条记录的所有要删除字段开始
select @i = patindex('%<p>本新闻共6页%',content) from test_news where id =@id
if(@i>0)
begin
-- 去掉本条记录的第一个要删除字段开始
-- 求尾的位置(</p>的位置)开始
select @j=0
delete #fs_news
insert into #fs_news select * from test_news where id = @id
select @ii = 0
while(1=1)
begin
select @jj = 0
select @jj = patindex('%</p>%',content) from #fs_news
select @ii = @ii + @jj + 4
if (@jj> 0)
begin
if(@ii < @i)
begin
select @ptr = TEXTPTR(content) from #fs_news
select @jj = @jj + 4
updatetext #fs_news.content @ptr 0 @jj
end
else
begin
select @j = @ii
break
end
end
else
begin
select @j = 0
break
end
end
-- 求尾的位置(</p>的位置)结束
if( @j > @i )
begin
select @j=@j-@i -- 查找的字符串的长度
-- 更新#fs_news1表开始
select @ptr=textptr(content) from test_news where id=@id
select @i = @i - 1
updatetext test_news.content @ptr @i @j ''
-- 更新#fs_news1表结束
-- 去掉本条记录的第一个要删除字段结束
continue -- 去掉本条记录的下一个要删除字段
end
else
begin
break -- 去掉下一个记录
end
end
else
begin
-- 本条记录处理结束,去处理下一条记录(跳出本条记录循环)
break
end
end
-- 移动光标,处理下一条记录
fetch cur into @id
end
close cur
deallocate cur
-- EXEC sp_dboption 'test_news', 'select into/bulkcopy', 'false'
-- EXEC sp_dboption 'fs_news', 'select into/bulkcopy', 'false'
select '请到test_news表中查找更新后的数据'