[英]How to get the XML file (which is stored in SQL DB) size?
在我的数据库中,数据以二进制格式存储,并且使用 SQL 查询,我通过在查询中使用 CAST 将其转换为 XML。
现在,我想通过添加另一列来获取 SQL 中的 XML 文件。
注意:我不想将这些数据导出到文件位置,因为它有大量记录。
使用的查询:
select
AR.Column1,
AR.Column2,
CAST (Message as XML) AS "XML FILE"
from
[dbo].[Table1] AP
INNER JOIN [DBName].[dbo].[Table2] AR ON AR.Column1=AP.Column1
where
(AR.InsertedDate BETWEEN '2019-11-19 00:00:00.000' AND '2019-11-19 23:59:59.477')
and AR.Column2='Delta' order by InsertedDate desc
当与可以存储可变长度数据的数据类型一起使用时, DATALENGTH
变得非常有用,例如:
图片
文本
nvarchar
文本
变量二进制
varchar
SELECT AR.Column1, AR.Column2,
CAST (Message as XML) AS "XML FILE",
CASE WHEN DATALENGTH(Message) <= 1024 THEN CONVERT(NVARCHAR, DATALENGTH(Message)) + ' BYTES'
WHEN DATALENGTH(Message) >1024 AND DATALENGTH(Message) <= 1048576 THEN CONVERT(NVARCHAR, DATALENGTH(Message)/1024) + ' KB'
WHEN DATALENGTH(Message) >1048576 AND DATALENGTH(Message) <= 1073741824 THEN CONVERT(NVARCHAR, DATALENGTH(Message)/1048576) + ' MB'
WHEN DATALENGTH(Message) >1073741824 AND DATALENGTH(Message) <= 109951162777 THEN CONVERT(NVARCHAR, DATALENGTH(Message)/1073741824) + ' GB'
ELSE CONVERT(NVARCHAR, DATALENGTH(Message)/109951162777) + ' TB' END AS "XML FILE SIZE"
FROM [dbo].[Table1] AP
INNER JOIN [DBName].[dbo].[Table2] AR ON AR.Column1=AP.Column1
WHERE (AR.InsertedDate BETWEEN '2019-11-19 00:00:00.000' AND '2019-11-19 23:59:59.477')
AND AR.Column2='Delta'
ORDER BY InsertedDate DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.