在更新 xml 文件时出现这样的错误
Posted
技术标签:
【中文标题】在更新 xml 文件时出现这样的错误【英文标题】:while updating the xml filed i gtting error like this 【发布时间】:2011-06-21 05:06:03 【问题描述】:SELECT 失败,因为以下原因 SET 选项的设置不正确: “阿里萨博特”。验证 SET 选项 适用于索引视图 和/或计算列上的索引 和/或查询通知和/或 xml 数据类型方法。
谁能说出以下语句有什么问题
while(@CountOfFile>=@Inc)
begin
SELECT @FileName = Attachments.value('(/Files/File[@Id=sql:variable("@Inc")]/Name/text())[1]','nvarchar(50)') FROM MOD_Quiz where Id = @Id
select @FilePath = Attachments.value('(/Files/File[@Id=sql:variable("@Inc")]/FilePath/text())[1]','nvarchar(50)') FROM MOD_Quiz where Id = @Id
set @Actual_Path = @FilePath + '/' + @Id + '/' + @FileName
set @Inc=@Inc+1
update MOD_Quiz set Attachments.modify('replace value of (/Files/File[@Id=sql:variable("@Inc")]/FilePath/text())[1] with sql:variable("@Actual_Path") ') where Id =@Id
end
【问题讨论】:
如果您发布代码、XML 或数据示例,请在文本编辑器中突出显示这些行,然后单击编辑器上的“代码示例”按钮 (
)工具栏以很好地格式化和语法突出显示它!
如果您使用SQL Server
,请查看我在Failed because incorrect arithabort setting 页面上的回答。希望这会有所帮助...
【参考方案1】:
正如错误所说:您的SELECT
语句没有问题,但您的一般SET ARITHABORT setting 有问题。
正如this article on TechNet 解释的那样,对于索引视图或 XML 数据类型方法,您需要有 SET ARITHABORT ON
。所以把这个声明放在你之前,你应该没问题。
【讨论】:
以上是关于在更新 xml 文件时出现这样的错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 dbms_xslprocessor.clob2file 将 XML 写入文件时出现 Oracle 错误
为啥在尝试更新 MySQL 条目时出现“超过锁定等待超时”错误?