【发布时间】:2020-01-21 19:05:29
【问题描述】:
我有一个包含混合列类型(int、varchar 和 xml)的表。 varchar 列具有 XML 格式的数据,xml 列具有大型数据节点。我正在尝试选择包含 XML 的所有 varchar 列,以使用 SQL 代理作业步骤创建 XML 输出文件。我遇到的问题是定义为 XML 的列在文件中填充了很多空格,并且正在截断该列中的数据。表如下:
CREATE TABLE [dbo].[MixedTYPEXML](
[col1] [varchar](4) NOT NULL,
[col2] [int] NOT NULL,
[xmlinText1] [varchar](190) NOT NULL,
[JOBP] [xml] NULL
)
GO
INSERT INTO [dbo].[MixedTypeXML]
([col1]
,[col2]
,[xmlinText1]
,[JOBP]
)
VALUES
('Prod'
,'35490'
,'<JOBP AllowExternal="1" name="JOBP.EXTRACTS_PHP_SSIS_POST_CORE#35490">'
,'<PreCon><conditions id="CONDITIONS" /></PreCon>'
)
GO
我的选择语句是
SELECT col2, xmlinText1, JOBP from dbo.MixedTypeXML
预期结果如下,但实际结果可能有数千条记录。我只用一个小样本数据示例提取一条记录。
35490 <JOBP AllowExternal="1" name="JOBP.EXTRACTS_PHP_SSIS_POST_CORE#35490"> <PreCon><conditions id="CONDITIONS" /></PreCon>
这只是我尝试提取的列的一个子集。我基本上需要提取表中的所有列,包括 XML 定义的列,以将结果发送到本地驱动器上的输出表,而无需填充空格或截断数据。输出文件将是 XML 格式的文件。 JOBP 列示例数据只是一个 sn-p。实际数据包含几百行xml 节点。
我查看了很多关于如何提取节点和值的帖子,但我并没有尝试提取特定数据。我希望整个表创建一个 XML 输出文件。任何想法如何做到这一点?
【问题讨论】:
-
(1) 请确认输出文件为XML格式。 (2) 请更新您的问题并通过 INSERT 语句添加样本数据群体。 (3) 请根据样本数据提供所需输出的样本。
标签: sql-server xml tsql