XML XQUERY NTEXT 数据类型的问题

发布于 2024-08-29 15:45:32 字数 501 浏览 2 评论 0原文

我想对数据类型为 NTEXT 的列使用 XQuery(我别无选择!)。我尝试使用 CONVERT 将列转换为 XML,但出现错误:

Incorrect syntax near the keyword 'CONVERT'.

这是查询

SELECT 
    y.item.value('@UserID', 'varchar(50)') AS UnitID,   
    y.item.value('@ListingID', 'varchar(100)') AS @ListingID  
FROM   
    dbo.KB_XMod_Modules
    CROSS APPLY     
    CONVERT(xml, instancedata).nodes('//instance') AS y(item)

(instancedata 是我的列)

有人能想到解决此问题的方法吗?

谢谢

I want to use XQuery on a column of data type NTEXT (I have no choice!). I have tried converting the column to XML using CONVERT but it gives the error:

Incorrect syntax near the keyword 'CONVERT'.

Here's the query

SELECT 
    y.item.value('@UserID', 'varchar(50)') AS UnitID,   
    y.item.value('@ListingID', 'varchar(100)') AS @ListingID  
FROM   
    dbo.KB_XMod_Modules
    CROSS APPLY     
    CONVERT(xml, instancedata).nodes('//instance') AS y(item)

(instancedata is my column)

Can anyone think of a work around for this ?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人间不值得 2024-09-05 15:45:32

似乎 CONVERTCAST(... AS XML) 都不起作用。

XQuery 的东西实际上只适用于 XML 列 - 抱歉。

但是:也许有一条逃生路线 :-)

您可以执行以下两种操作之一:

  • XML 类型的持久计算列添加到您的表中,并在该新列上进行派对,

或者 - 如果您无法更改表结构 -

  • 在该表上创建一个视图并包含一个 XML 转换列

因此,对于解决方案 #1,您需要执行以下操作:

ALTER TABLE KB_XMod_Modules 
   ADD XmlCol AS CAST(instancedata AS XML) PERSISTED

对于解决方案 #2,您需要使用:

CREATE VIEW KBwithXML AS
  SELECT instancedata, CAST(instancedata AS XML) 'XmlCol'
  FROM KB_XMod_Modules

在这两种情况下,您现在都有一个 XmlCol可用 XML 类型的,您可以使用 XQuery 进行查询!

It seems that neither CONVERT nor CAST(... AS XML) work.

The XQuery stuff really only works on XML columns - sorry.

However: maybe there's an escape route :-)

You could do one of two things:

  • add a persisted computed column of type XML to your table and party on that new column

or - if you can't change the table structure -

  • create a view over that table and include a XML-casted column

So for solution #1 you'd do:

ALTER TABLE KB_XMod_Modules 
   ADD XmlCol AS CAST(instancedata AS XML) PERSISTED

and for solution #2, you'd use:

CREATE VIEW KBwithXML AS
  SELECT instancedata, CAST(instancedata AS XML) 'XmlCol'
  FROM KB_XMod_Modules

In both cases, you now have a XmlCol of type XML available, which you can query with XQuery to your heart's delight!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文