Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从bytea列中包含XML数据的表中选择_Sql_Xml_Postgresql_Bytearray - Fatal编程技术网

Sql 从bytea列中包含XML数据的表中选择

Sql 从bytea列中包含XML数据的表中选择,sql,xml,postgresql,bytearray,Sql,Xml,Postgresql,Bytearray,我有一个PostgreSQL数据库,其中包含一个表,表中的列类型为bytea,名为“data”。 “数据”包含大量XML数据 我希望能够搜索特定的行,其中“data”中有一个XML元素,名为,包含“ID57841”。所以它看起来像ID57841 此外,我还想从该列中输出某些XML元素,例如 我不能在数据库中写入,只能读取。我在谷歌上搜索了很多答案,但找不到任何对我有帮助的东西。有人能帮我吗?您应该能够使用convert\u from()将bytea列“动态”转换为文本列,然后对结果应用xpath

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

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

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


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

您应该能够使用
convert\u from()
将bytea列“动态”转换为文本列,然后对结果应用xpath()函数

比如:

SELECT xpath('/fw:MyPassword/text()', convert_from(bytea_column, 'UTF-8')) FROM your_table; 选择xpath('/fw:MyPassword/text()',转换自(bytea_列,'UTF-8')) 从你的桌子上; 您很可能需要将名称空间作为第三个参数提供。
查看手册了解有关此方面的详细信息:

顺便说一句:要在帖子中插入,您可以使用HTML实体和这应该可以:

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

可以使用反勾号字符转义标记