在PostgreSQL中,将查询结果直接导出为XML格式并不复杂,数据库自带了相关的XML生成函数,也可以结合客户端工具完成文件落地。下面先介绍核心函数和具体做法。

使用SQL函数生成XML
PostgreSQL提供了query_to_xml函数,可以把任意SELECT语句的结果集转换成XML文档。它的基本签名如下:
-- query_to_xml(query text, nulls boolean, tableforest boolean, targetns text)
SELECT query_to_xml('SELECT id, name FROM users LIMIT 3', true, false, '');
参数含义:第一个是查询语句文本;第二个表示是否保留NULL值;第三个为false时输出完整XML文档,为true时只输出行森林;第四个是命名空间,留空即可。
使用table_to_xml导出整表
如果只是导出某张表,可以用table_to_xml:
-- table_to_xml(tbl regclass, nulls boolean, tableforest boolean, targetns text)
SELECT table_to_xml('users', true, false, '');
通过psql命令行导出文件
在终端里,我们可以使用psql执行上述SQL并把结果重定向到文件:
psql -U postgres -d mydb -c "SELECT query_to_xml('SELECT id, name FROM users', true, false, '');" -A -t > output.xml
其中-A取消对齐,-t只输出元组,避免多余符号污染XML。
使用COPY命令写出文件
如果有服务端文件权限,也可借助COPY:
COPY (
SELECT query_to_xml('SELECT id, name FROM users', true, false, '')
) TO '/tmp/users.xml';
小结
利用PostgreSQL内置的XML函数配合psql或COPY,就能把查询结果直接变成XML格式。实际项目中建议封装成视图或函数,便于复用和权限控制。
PostgreSQLXMLquery_export修改时间:2026-07-29 21:00:15