- 论坛徽章:
- 0
|
以下是我创建的对文件检索的脚本,Word查询已经成功
但是我想取出匹配字段所在段落的内容,不知道这么解决,请各位大虾帮帮忙
例如:word文档test.doc内容为
你好,测试,test
如果有人解决了这个问题
在信息中包括你个人资料中的签名. 只限注册用户使用. 当有人回复你的主题时你将收到邮件通知,限注册用户使用.
查询“解决”我希望获得结果是如果有人解决了这个问题
或者是解决的前20和后20个字
脚本如下:
exec sp_fulltext_database \'enable\'
go
create table dali (ID int not null primary key,MyImage image,FileType char(4),FileNmae varchar(255))
go
exec sp_fulltext_catalog \'My_FullDir\', \'create\',\'D:\\Tools\\Oracle\'
go
EXEC sp_fulltext_catalog \'My_FullDir\', \'start_full\'
go
declare @Key sysname ;
select @Key=c.name from syscolumns a,sysconstraints b,sysobjects c where a.id=object_id(\'dali\') and a.name=\'ID\' and a.id=b.id and b.constid=c.id and c.name like \'PK%\'
exec sp_fulltext_table \'dali\',\'create\',\'My_FullDir\',@Key ----这两句是为全文索引,对表进行标记
go
sp_fulltext_column \'dali\',\'MyImage\',\'add\',0x0804,\'FileType\'
go
EXEC sp_fulltext_table \'dali\',\'activate\'
GO
IF ( EXISTS ( SELECT * FROM sysobjects WHERE name = \'sp_textcopy\' ) )
BEGIN
DROP PROCEDURE sp_textcopy
END
go
CREATE PROCEDURE sp_textcopy
@srvname varchar (30),
@login varchar (30),
@password varchar (30),
@dbname varchar (30),
@tbname varchar (30),
@colname varchar (30),
@filename varchar (30),
@whereclause varchar (40),
@direction char(1)
AS
/* 这是使用textcopy工具将文件插入到数据库中,如果有前台工具可以用前台开发工具将文件插入,这里为了演示 */
DECLARE @exec_str varchar (255)
SELECT @exec_str=\'textcopy /S \'+@srvname+\' /U \'+@login+\' /P \'+@password+\' /D \'+@dbname+\' /T\'+@tbname+\' /C \'+@colname+\' /W\"\'+@whereclause+\'\" /F\"\'+@filename+\'\" /\'+@direction
EXEC master..xp_cmdshell @exec_str
go
insert dali values(1,0x,\'.doc\',\'test\')
go
sp_textcopy \'kavin\',\'sa\',\'\',\'CommTrade\',\'dali\',\'MyImage\',\'D:\\Tools\\Oracle\\test.doc\',\'where ID=1\',\'I\'
go
insert dali values(2,0x,\'.bmp\',\'test\')
go
sp_textcopy \'kavin\',\'sa\',\'\',\'CommTrade\',\'dali\',\'MyImage\',\'D:\\Tools\\Oracle\\test.bmp\',\'where ID=2\',\'I\'
go
insert dali values(3,0x,\'.pdf\',\'test\')
go
sp_textcopy \'kavin\',\'sa\',\'\',\'CommTrade\',\'dali\',\'MyImage\',\'D:\\Tools\\Oracle\\test.pdf\',\'where ID=3\',\'I\'
go
insert dali values(4,0x,\'.htm\',\'test\')
go
sp_textcopy \'kavin\',\'sa\',\'\',\'CommTrade\',\'dali\',\'MyImage\',\'D:\\Tools\\Oracle\\test.html\',\'where ID=4\',\'I\'
go
insert dali values(5,0x,\'.txt\',\'AQ\')
go
sp_textcopy \'kavin\',\'sa\',\'\',\'CommTrade\',\'dali\',\'MyImage\',\'D:\\Tools\\Oracle\\AQ.txt\',\'where ID=5\',\'I\'
go
select * from dali where contains(MyImage,\'解决\') |
|