从包含 bytea-column 中 XML 数据的表中选择

发布于 2024-10-20 13:56:06 字数 356 浏览 0 评论 0原文

我有一个 PostgreSQL 数据库,其中包含一个表,其中有一列名为“data”的 bytea 类型列。 “data”包含大量 XML 数据。

我希望能够搜索特定行,其中“data”中有一个名为 的 XML 元素,其中包含“ID57841”。所以它看起来像 ID57841

另外,我想从该列输出某些 XML 元素,例如

我无法在数据库中写入,只能读取。我在谷歌上搜索了很多答案,但找不到任何对我有帮助的东西。有人可以帮我吗?

I have a PostgreSQL database containing a table with a column of type bytea named "data".
"data" contains large XML-data.

I would like to be able to search for specific rows, where there is a XML-element in "data" called <fw:MyID></fw:MyID> that contains "ID57841". So it'll look like <fw:MyID>ID57841</fw:MyID>.

Also, I would like to output certain XML-elements from that column, say <fw:MyPassword></fw:MyPassword>.

I cannot write in the database, only read. I've Googled after answers a lot, but cannot fint anything that helps me. Can someone please help me?

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

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

发布评论

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

评论(2

蝶舞 2024-10-27 13:56:06

您应该能够使用 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 实体 <和>

You should be able to convert the bytea column to a text column "on-the-fly" using convert_from() and then apply an xpath() function on the result.

Something like:

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

You will most likely need to supply the namespace as a third parameter.
Check out the manual for details regarding this:
http://www.postgresql.org/docs/current/static/functions-xml.html#FUNCTIONS-XML-PROCESSING

Btw: to inlcude < and > in your post, you can use the HTML entities < and >

三五鸿雁 2024-10-27 13:56:06

这应该有效:

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

This should work:

SELECT xpath('//fw:MyPassword/text()', CAST(convert_from(bytea_column, 'UTF-8') AS XML))
FROM your_table;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文