用sql写个作业每隔五分钟去读某个文件夹下所有xml文件,并导入到DB中

王朝学院·作者佚名  2011-04-25
窄屏简体版  字體: 小  |  中  |  大  |  超大  

消息 15281,级别 16,状态 1,过程 xp_cmdshell,第 1 行

SQL Server 阻止了对组件 'xp_cmdshell' 的 过程 'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

exec sp_configure 'show advanced options', 1;

reconfigure;

exec sp_configure 'xp_cmdshell', 1; reconfigure;

用sql写个作业每隔五分钟去读某个文件夹下所有xml文件,并把它的数据插入到一张表在把它删除

--create table TEST (

--A char(10),B char(10),C char(10)

--)

DECLARE

@XMLDIR varchar(2000), --XML放置的文件全路径

@DIR varchar(1000), --XML的文件夹

@FileFullName varchar(8000) --游标用,文件名称(全路径)

declare

@FileTable TABLE(x varchar(8000)) --临时表,存储 文件夹所有XML文件名称

SET @DIR='D:\TEST'

SET @XMLDIR=N'DIR '+ @DIR + '\*.xml' --*.xml 只读取是XML的扩展名文件

INSERT @FileTable

exec xp_cmdshell @XMLDIR --将文件夹的内容读取插入临时表中

delete from @FileTable where x not like '%.xml%' or x is null

update @FileTable set x=@DIR+'\'+SUBSTRING(x,37,120)

--select * from @FileTable

declare fCursor cursor for

select x from @FileTable

open fCursor

fetch next from fCursor into @FileFullName

while(@@fetch_status=0)

BEGIN

declare

@xml varchar(8000), --XML转换成列的内容

@Pointer INT, --指向位置的变量

@DELFILENAME varchar(2000) --删除文件的CMDSHELL

declare @table TABLE(x varchar(8000))

SET @DELFILENAME= 'DEL '+@FileFullName

insert into @table EXEC ('(SELECT * FROM OPENROWSET(BULK '''+@FileFullName+''',SINGLE_CLOB) as x)')

select @xml=x from @table

EXECUTE sp_xml_PReparedocument @Pointer OUTPUT,@xml

INSERT INTO TEST(A,B,C)

SELECT A,B,C

FROM OPENXML (@Pointer,'ROOT/Row')WITH(A varchar(10),B varchar(10),C varchar(10))

EXEC sp_xml_removedocument @Pointer

EXEC xp_cmdshell @DELFILENAME

fetch next from fCursor into @FileFullName

END

close fCursor --关闭游标

deallocate fCursor --删除游标

剩下的就是加个代理了..哈...5分钟执行一次

XML文件如下

view sourceprint?

<ROOT>

<Row A='1' B='1' C='1'></Row>

<Row A='2' B='1' C='1'></Row>

<Row A='3' B='1' C='1'></Row>

<Row A='4' B='1' C='1'></Row>

</ROOT>

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航