TSToXML 函数返回时间系列的 XML 表示法。
TSToXML(doctype lvarchar,
id lvarchar,
ts timeseries,
output_max integer default 0)
returns lvarchar;
TSToXML(doctype lvarchar,
id lvarchar,
ts timeseries)
returns lvarchar;
| 值 | 结果 |
|---|---|
| 无值 | 32 768 字节 |
| 负整数 | 232-1 字节 |
| 1 到 4096 | 4096 字节 |
| 4096 到 232-1 | 指定的字节数 |
使用 TSToXML 函数可为少量数据提供 XML 格式的标准信息交换表示法。
XML 输出中的顶级标记是 TSToXML 函数的第一个参数。
id 标记必须唯一标识时间系列并在 XML 输出中引用它所基于的行。
AllData 标记指示返回了所有数据还是因超过 output_max 参数设置的大小而截断了数据。
其余的 XML 标记表示 TimeSeries 子类型及其列,包括时间戳记。
特殊字符 <、>、&、' 和 " 将替换为其预定义的 XML 实体。
指定的 XML 格式时间系列,具体取决于 output_max 参数设置的大小。AllData 标记指示返回了所有数据 (1) 还是截断了数据 (0)。
以下查询使用 Clip 函数从 TimeSeries 子类型 actual 中选择一个小时的时间系列数据,以 XML 格式返回:
SELECT TSToXML('meterdata', esi_id,
Clip(actual, '2010-09-08 12:00:00'::datetime year to second,
'2010-09-08 13:00:00'::datetime year to second ) )
FROM ts_data
WHERE esi_id = '2250561334';
会返回以下 XML 数据:
<meterdata>
<id>2250561334</id>
<AllData>1</AllData>
<meter_data>
<tstamp>2010-09-08 12:15:00.00000</tstamp>
<value>0.9170000000</value>
</meter_data>
<meter_data>
<tstamp>2010-09-08 12:15:00.00000</tstamp>
<value>0.4610000000</value>
</meter_data>
<meter_data>
<tstamp>2010-09-08 12:15:00.00000</tstamp>
<value>4.1570000000</value>
</meter_data>
<meter_data>
<tstamp>2010-09-08 12:15:00.00000</tstamp>
<value>6.3280000000</value>
</meter_data>
<meter_data>
<tstamp>2010-09-08 12:15:00.00000</tstamp>
<value>2.6690000000</value>
</meter_data>
</meterdata>
TimeSeries 子类型的名称为 meter_data,其列为 tstamp 和 value。
AllData 标记中的值 1 指示在本示例中返回了所有数据。