簡體   English   中英

從包含在 bytea 列中的 XML 數據的表中選擇

[英]SELECT from table containing XML-data in bytea-column

我有一個 PostgreSQL 數據庫,其中包含一個名為“data”的 bytea 類型列的表。 “數據”包含大型 XML 數據。

我希望能夠搜索特定行,其中“數據”中有一個名為<fw:MyID></fw:MyID>的 XML 元素,其中包含“ID57841”。 所以它看起來像<fw:MyID>ID57841</fw:MyID>

另外,我想從該列輸出某些 XML 元素,例如<fw:MyPassword></fw:MyPassword>

我無法寫入數據庫,只能讀取。 我在谷歌上搜索了很多答案,但找不到任何對我有幫助的東西。 有人可以幫幫我嗎?

您應該能夠使用convert_from()將 bytea 列“即時”轉換為文本列,然后對結果應用 xpath() 函數。

就像是:

SELECT xpath('/fw:MyPassword/text()', convert_from(bytea_column, 'UTF-8'))
FROM your_table;

您很可能需要提供命名空間作為第三個參數。
查看手冊以了解有關此內容的詳細信息:
http://www.postgresql.org/docs/current/static/functions-xml.html#FUNCTIONS-XML-PROCESSING

順便說一句:要在您的帖子中包含 < 和 >,您可以使用 HTML 實體 &lt; 和 &gt;

這應該有效:

SELECT xpath('//fw:MyPassword/text()', CAST(convert_from(bytea_column, 'UTF-8') AS XML))
FROM your_table;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM