SQL Server error: result of 'text()' expression is statically 'empty'
SQL Server error: result of 'text()' expression is statically 'empty'
如果有人能提供帮助,那就太好了,因为我已经花了几个小时,但不知道如何修复它...
我有一个现有代码(据我所知,它尝试从 dbo table 字段中读取 XML):
with usluga_list as (
--EvnUslugaList
)
select top 1
cast(doc.EvnXml_Data.query('data/@XmlDataSection_SysNick/text()') as nvarchar(max)) as value
from
usluga_list u
cross apply (
select top 1 *
from v_EvnXml with(nolock)
where u.EvnUsluga_id = Evn_id
order by EvnXml_insDT desc
) doc
order by
EvnXml_insDT --SqlOrderType_SysNick
当这段代码运行时,我得到这个错误:
Error number: 42000/2377 [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]XQuery [doc.EvnXml_Data.query()]: Result of 'text()' expression is statically 'empty'
错误给出了片段:
doc.EvnXml_Data.query('data/@XmlDataSection_SysNick/text()')
但是我不知道如何防止它或检查 null 并输出另一个值。
需要 SQL 服务器专家!
尝试替换这一行:
cast(doc.EvnXml_Data.query('data/@XmlDataSection_SysNick/text()') as nvarchar(max)) as value
由此:
doc.EvnXml_Data.value('(data/@XmlDataSection_SysNick)[1]', 'nvarchar(max)') as value
如果有人能提供帮助,那就太好了,因为我已经花了几个小时,但不知道如何修复它...
我有一个现有代码(据我所知,它尝试从 dbo table 字段中读取 XML):
with usluga_list as (
--EvnUslugaList
)
select top 1
cast(doc.EvnXml_Data.query('data/@XmlDataSection_SysNick/text()') as nvarchar(max)) as value
from
usluga_list u
cross apply (
select top 1 *
from v_EvnXml with(nolock)
where u.EvnUsluga_id = Evn_id
order by EvnXml_insDT desc
) doc
order by
EvnXml_insDT --SqlOrderType_SysNick
当这段代码运行时,我得到这个错误:
Error number: 42000/2377 [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]XQuery [doc.EvnXml_Data.query()]: Result of 'text()' expression is statically 'empty'
错误给出了片段:
doc.EvnXml_Data.query('data/@XmlDataSection_SysNick/text()')
但是我不知道如何防止它或检查 null 并输出另一个值。
需要 SQL 服务器专家!
尝试替换这一行:
cast(doc.EvnXml_Data.query('data/@XmlDataSection_SysNick/text()') as nvarchar(max)) as value
由此:
doc.EvnXml_Data.value('(data/@XmlDataSection_SysNick)[1]', 'nvarchar(max)') as value