读书人

XML与sql2005的存储过程,该如何处理

发布时间: 2012-09-01 09:33:03 作者: rapoo

XML与sql2005的存储过程

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

alter PROCEDURE dbo.up_xml1
@cxml xml
AS
BEGIN
SET NOCOUNT ON;
declare @idoc int;
declare @doc xml;
select @doc = bulkcolumn
from openrowset(
bulk '''+@doc+''',
single_blob
) as x

exec sp_xml_preparedocument @Idoc output,@doc

select * into #temp from openxml(@idoc, '/main/base ', 2)with (
[bookname]varchar(100),
[cbookname]varchar(100),
[ISBN]varchar(100),
[开本]varchar(100),
[链接]varchar(100)
)

END
select * from #temp
drop table #temp

GO

创建的时候提示 无法进行大容量加载。文件 "+@doc+" 不存在。
bulk 后面不能跟变量吗,还是我哪里写的不对,请指教!!

[解决办法]
不能跟变量,

可以使用sp_executesql动态执行。
[解决办法]
OPENROWSET 不接受参数变量。
参考:
http://technet.microsoft.com/zh-cn/library/ms190312.aspx

你在上面的地址直接:ctrl+F 可以找到“OPENROWSET 不接受参数变量”。

OPENDATASOURCE也不接受参数变量。

可以用exec 或是sp_executesql。

参考:
http://topic.csdn.net/t/20050530/08/4044702.html

读书人网 >SQL Server

热点推荐