存储在SQL数据库中的XML文件

存储在SQL数据库中的XML文件,sql,sql-server,xml,xml-parsing,sas,Sql,Sql Server,Xml,Xml Parsing,Sas,有人知道从SQL数据库提取XML文件的最简单方法吗 不幸的是,我工作时唯一允许使用的工具是SAS。那么,是否可以使用SAS将文件提取到不同的位置,然后使用XML libname连接到它?我对这个答案做了两个假设 所需的XML文件存储为XML对象 您可以仅使用XML文件中的文本在目标位置创建XML对象 您可以编写查询以将XML文件(存储为XML对象)提取为字符串 SELECT CONVERT(VARCHAR(MAX), XmlData) AS XmlString FROM YourTable 我

有人知道从SQL数据库提取XML文件的最简单方法吗


不幸的是,我工作时唯一允许使用的工具是SAS。那么,是否可以使用SAS将文件提取到不同的位置,然后使用XML libname连接到它?

我对这个答案做了两个假设

  • 所需的XML文件存储为XML对象
  • 您可以仅使用XML文件中的文本在目标位置创建XML对象
  • 您可以编写查询以将XML文件(存储为XML对象)提取为字符串

    SELECT CONVERT(VARCHAR(MAX), XmlData) AS XmlString FROM YourTable
    

    我对这个答案有两个假设

  • 所需的XML文件存储为XML对象
  • 您可以仅使用XML文件中的文本在目标位置创建XML对象
  • 您可以编写查询以将XML文件(存储为XML对象)提取为字符串

    SELECT CONVERT(VARCHAR(MAX), XmlData) AS XmlString FROM YourTable
    

    谢谢Thomas,但我认为xml对象可能只是存储为xml文本文件。您建议的内容可以通过SQL传递在SAS中使用吗?您的意思是作为BLOB对象吗?我想我不知道你说的“XML文本文件”是什么意思。如果您只是查询字段,是否可以将结果作为文本读取?这听起来像是一个VARCHAR字段(在其中您已经有了XML文本作为文本),或者是一个XML对象,您可以在其中使用我提供的查询。如果它是一个BLOB对象,您可以执行以下操作:从您的表中选择CONVERT(VARCHAR(MAX),CAST(blobfieldas BINARY))。是的,我可以在SAS中查询显示XML文本字符串的字段。问题是SAS截断了它。就好像每当我通过SAS连接时,它都会自动被截断。我认为唯一的解决方案可能是通过SQL pass-through对其进行XML解析,但到目前为止我还无法做到这一点……我认为XML文件只是作为XML对象存储在SQL数据库上谢谢Thomas,但我认为XML对象可能只是存储为XML文本文件。您建议的内容可以通过SQL传递在SAS中使用吗?您的意思是作为BLOB对象吗?我想我不知道你说的“XML文本文件”是什么意思。如果您只是查询字段,是否可以将结果作为文本读取?这听起来像是一个VARCHAR字段(在其中您已经有了XML文本作为文本),或者是一个XML对象,您可以在其中使用我提供的查询。如果它是一个BLOB对象,您可以执行以下操作:从您的表中选择CONVERT(VARCHAR(MAX),CAST(blobfieldas BINARY))。是的,我可以在SAS中查询显示XML文本字符串的字段。问题是SAS截断了它。就好像每当我通过SAS连接时,它都会自动被截断。我认为唯一的解决方案可能是通过SQL pass-through对其进行XML解析,但到目前为止我还无法做到这一点……我认为XML文件只是作为XML对象存储在SQL数据库中