【问题标题】:SQL Syntax Error When Selecting From Config File从配置文件中选择时出现 SQL 语法错误
【发布时间】:2014-04-11 03:05:11
【问题描述】:

我正在使用以下 T-SQL 来从本地机器上的配置文件中选择一个值。但是,就行了,

SELECT xmlData.Col.value('Setting','varchar(max)')

我收到语法错误。我正确获取了配置文件,我可以在第一次选择中看到,但是无法从配置文件中的特定节点正确获取值(在这种情况下,配置文件的 appsettings 中的一个键)。

declare @table table (Value XML)

insert @table
select a.* from openrowset (bulk 'C:\Program Files\Config.config', single_clob) a

select * from @table

DECLARE @TEMPSTRING AS nvarchar(100)
SET @TEMPSTRING = (select Value.value('filelocation[1]', 'varchar(100)')
from @table)

Select @TEMPSTRING  
DECLARE @XML AS XML
SET @XML = CAST(@TEMPSTRING as XML)
SELECT xmlData.Col.value('I AM TRYING TO GET THE SPECIFIC VALUE HERE','varchar(max)')
FROM @XML.nodes('//configuration/appSettings') 
xmlData(Col);

【问题讨论】:

    标签: sql sql-server xml


    【解决方案1】:

    如果您尝试从 appSettings 节点提取单个值,则需要这样编写:

    SELECT xmlData.Col.value('@value','varchar(max)') FROM @XML.nodes('//configuration/appSettings/add[@key="THE SETTING NAME"]') xmlData(Col);

    此外,您可以使用此 select 语句获取所有键和值 SELECT xmlData.Col.value('@key','varchar(max)')[Key], xmlData.Col.value('@value','varchar(max)')[Value] FROM @XML.nodes('//configuration/appSettings/add')xmlData(Col);

    【讨论】:

      猜你喜欢
      • 2017-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-17
      • 2013-10-07
      • 2020-11-05
      • 2018-10-09
      • 1970-01-01
      相关资源
      最近更新 更多