用sql写个作业每隔五分钟去读某个文件夹下所有xml文件,并导入到DB中
消息 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文件如下
< 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 > |
千人.NET交流群:18362376,因为有你,代码变得更简单,加群请输入cnblogs
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人