在postgresql中将'record'序列化为xml的通用函数

时间:2014-02-11 08:25:17

标签: sql xml postgresql

我尝试创建postgresql函数,它应该将一些抽象记录序列化为xml。这样的事情:to_xml(in item record, out xml text)

但是postgres不允许使用record作为输入参数类型。所以我尝试使用内置函数query_to_xml。它接受查询和qrite查询的结果到xml。但它仅适用于select个查询(此函数是非易失性的)。

有没有办法创建这样的通用函数?它不应该只用于plpgsql或sql语言,C也可以接受。

更新: 输出XML应如下所示:

<row>
  <first_column_name>value</first_column_name>
  <second_column_name>value</second_column_name>
  <third_column_name>value</third_column_name>
  ...
</row>

1 个答案:

答案 0 :(得分:0)

你必须做这样的事情:

select xmlagg(CAST (row as XML)) from 
(SELECT
  xmlelement(
    name row,
    xmlconcat(
      xmlelement(name first_column_name, column1),
      xmlelement(name second_column_name, column2)
      ...
    )
  ) as row
  FROM your_table) as t