數據庫具有帶有3列empID,badgID,XMLDATA的表EMP。如何從表中讀取XML屬性?
的XMLDATA有數據類型「CLOB」和數據的格式爲 -
<Record id="11">
<Demo rID="5"/>
</Record>
我怎麼能在單個查詢上述XMLDATA讀取節點「演示」價值屬性「RID」?
服務器 - SQL Server 2005中
數據庫具有帶有3列empID,badgID,XMLDATA的表EMP。如何從表中讀取XML屬性?
的XMLDATA有數據類型「CLOB」和數據的格式爲 -
<Record id="11">
<Demo rID="5"/>
</Record>
我怎麼能在單個查詢上述XMLDATA讀取節點「演示」價值屬性「RID」?
服務器 - SQL Server 2005中
如果您有存儲與數據類型的XML在SQL Server的數據,那麼你可以這樣做:
SELECT
empID, badgID,
XmlData.value('(/Record/Demo/@rID)[1]', 'int') as 'rID'
FROM
dbo.YourTable
如果你的數據類型是不 XML - 實際上它應該!您可能需要使用這樣的事情(可能並非在所有情況下工作):如果您發佈的代碼或XML
SELECT
empID, badgID,
(CAST XmlData AS XML).value('(/Record/Demo/@rID)[1]', 'int') as 'rID'
FROM
dbo.YourTable
謝謝。 我試過這兩個查詢,它失敗並且說「模式XMLDATA不存在」。 但是XMLDATA列存在於表中。 – indigenious 2010-08-19 07:44:33
@indigenious:你能告訴我們實際的表格結構嗎?數據庫圖表什麼的? – 2010-08-19 08:14:26
我的歉意,我只能讀取數據庫的訪問權限,並沒有意識到這個架構。 – indigenious 2010-08-20 13:36:55
,** **請在高亮文本編輯器的線,然後點擊「代碼」按鈕(101 010)在編輯器工具欄上進行很好的格式化和語法突出顯示! – 2010-08-18 14:13:04
什麼是實際的數據類型?就我所知,clob不是SQL Server數據類型。 – 2010-08-18 14:14:06
嚴重 - 數據類型「CLOB」?據我所知,SQL Server沒有 - 我們有'IMAGE,TEXT,NTEXT'(全部過時)或'(N)VARCHAR(MAX)'或'VARBINARY(MAX)'或'XML'所以這是真的嗎? – 2010-08-18 14:14:23