Sql server 如何重放CLR聚合函数以生成大于8000字节的BLOB?
我需要构造一个blob来捕获一系列Sql server 如何重放CLR聚合函数以生成大于8000字节的BLOB?,sql-server,blob,clr,aggregate-functions,Sql Server,Blob,Clr,Aggregate Functions,我需要构造一个blob来捕获一系列(datetime,float)元组。它们是最初在SQL表中收集的传感器采样值,包含类型的列。一段时间后,它们应该转换为blob并存储在另一种记录中。需要时,blob应该扩展回(比如临时)表 由于样本的处理更加复杂,原始SQL语言不适合实现该功能。另一方面,我希望以灵活的方式实现CLR程序集 到目前为止,我已经实现了聚合函数,可以这样调用: SELECT MIN(UTC) AS min_utc, MAX(UTC) AS max_utc,
(datetime,float)
元组。它们是最初在SQL表中收集的传感器采样值,包含类型的列。一段时间后,它们应该转换为blob并存储在另一种记录中。需要时,blob应该扩展回(比如临时)表
由于样本的处理更加复杂,原始SQL语言不适合实现该功能。另一方面,我希望以灵活的方式实现CLR程序集
到目前为止,我已经实现了聚合函数,可以这样调用:
SELECT
MIN(UTC) AS min_utc,
MAX(UTC) AS max_utc,
Aggregates.TimeValuesBlob(UTC, sensor_value) AS result
FROM SensorData.dbo.sensor_values
WHERE UTC BETWEEN '2012-09-14 08:00' AND '2012-09-14 12:25'
但是,聚合函数最多可以返回8000字节。我需要构造更大的斑点。怎么做?MS-SQL Server(2012版,也可能是2008 R2版)应使用哪些功能/机制
是否需要编写CLR存储过程并将SQL命令作为参数传递?是否可以使用与上面相同的SQL命令,对其进行内部解析,自行进行聚合?或者我应该重新考虑一下这个方法吗?看看这个:你可能想用它,或者至少是想知道如何做这类事情。谢谢你的例子。我想使用更多面向数据的blob(这不是DataTable的序列化);无论如何,该示例包含解释如何执行此操作的代码片段。