`
starbhhc
  • 浏览: 655507 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

SQL Server 2005 读取xml 文件 突破 varchar 8000 限制

阅读更多
SELECT * into #temp1 FROM OPENROWSET(
   BULK D:\0700000015.xml ,SINGLE_CLOB  ) AS x
DECLARE @hdoc int
DECLARE @doc varchar(8000)
select @doc=BulkColumn  from #temp1

EXEC sp_xml_preparedocument @hdoc OUTPUT,@doc

SELECT * into #temp2
FROM OPENXML (@hdoc, /AA/BB,2)
with  (A varchar(50),B varchar(50),C varchar(50)     )

exec sp_xml_removedocument @hdoc

先是使用一个较小的文件,测试了一下,通过.但当使用真正数据时,提示说XML 标记没有闭合.经查看,原来并没有把所有的数据都写入到@doc中,于是又找帮助,@doc 可以使用ntext ,text ,xml ,varchar,char等类型.试着改为ntext,text 都没有成功,原因是ntext ,text  类型不能直接定义成变量.于是使用了SQL Server 2005 的类型新成员:xml.结果是500KB以下的文件全部通过.当文件大于500KB时,还是报错.于是有回去看帮助.试着把SINGLE_CLOB   改为SINGLE_BLOB  .最终解决了问题.由于没有时间测试更大的文件,我只是试了在800KB以内的文件.其实,SINGLE_BLOB  代表的是varbinary(max)类型.能有多长是根据它来限制的.

最终更改如下:

SELECT * into #temp1 FROM OPENROWSET(
   BULK D:\0700000015.xml ,SINGLE_BLOB  ) AS x
DECLARE @hdoc int
DECLARE @doc xml

select @doc=BulkColumn  from #temp1

EXEC sp_xml_preparedocument @hdoc OUTPUT,@doc

SELECT * into #temp2
FROM OPENXML (@hdoc, /AA/BB,2)
with  (A varchar(50),B varchar(50),C varchar(50)     )

exec sp_xml_removedocument @hdoc

分享到:
评论

相关推荐

    SQL Server中读取XML文件的简单做法

    总的来说,虽然SQL Server 2000在处理XML文件方面略显复杂,但通过`sp_xml_preparedocument`和`OPENXML`的组合,我们可以有效地读取XML文件并执行各种操作。这种做法为开发者提供了一种灵活的方式,使他们能够在SQL ...

    OpenXML文档,sqlserver处理XML,可用于存储过程数组传参

    OpenXML 是 SQL Server 提供的一种接口,用于处理 XML 文档并将其转换为关系型数据,以便在数据库中进行操作。这个功能特别适用于处理 XML 数据,尤其是当你需要在存储过程中使用数组或其他复杂数据结构作为参数时。...

    Sqlserver2005XML优化知识

    在SQL Server 2005中,XML字段的优化至关重要,因为XML数据类型在数据库中的使用日益增多。这里我们将深入探讨XML查询方法、优化策略以及如何建立XML索引来提升性能。 1. XML查询方法 - **WHERE条件**:避免在...

    SQL Server 2005查询XML数据优化研究.pdf

    3. 利用查询窗口:利用SQL Server提供的查询窗口工具,能够更有效地访问和操作XML数据。 五、实验与结果 在研究中,通过实验比较了在XML类型列和varchar类型列上进行查询的效率。实验结果表明,在未优化的情况下,...

    关于SQL Server 2005中XML数据存储的研究.pdf

    1. SQL Server 2005允许用户创建XML类型的列,可以直接在数据库中存储和操作XML数据,XML数据类型在SQL Server中被视为第一类类型,就像整型(INT)和字符串类型(VARCHAR)一样。 2. 通过一系列XML特定的函数,...

    sql server2005 sql server2005sql server2005

    其次,SQL Server 2005在数据类型上也有扩展,增加了诸如XML数据类型,允许直接存储和操作XML文档,方便了XML数据与关系数据之间的交互。同时,增加了大值数据类型(varchar(max)、nvarchar(max)和varbinary(max))...

    SQL Server XML基础指南.pdf

    - **SQL Server内置函数处理XML文档**:SQL Server提供了一系列内置函数,如`OPENXML`、`XMLPARSE`等,用于解析、查询和操作XML数据,简化了开发者的工作。 - **XML数据拆分与转换**:SQL Server支持将XML数据拆分为...

    SQL Server2005教程

    SQL Server 2005是微软公司推出的一款关系型数据库管理系统,它在SQL Server系列中扮演着重要角色,尤其对于初学者和企业级应用来说,提供了丰富的功能和强大的数据管理能力。本教程将深入探讨SQL Server 2005的核心...

    SQLServer2005_SSMSEE_x64

    “SQL2005”标签进一步明确了讨论的主题,即SQL Server 2005,这是一款重要的数据库产品,具有许多关键特性,如改进的数据类型(例如:datetime2、varchar(max)和nvarchar(max)),支持XML索引,以及增强了的分析和...

    SQL SERVER 2005中XML类型数据的输入方法.pdf

    SQL SERVER 2005是微软推出的一款关系型数据库管理系统,它引入了XML(可扩展标记语言)数据类型,使得XML文档可以直接存储在数据库中,实现了XML数据与关系型数据的融合。XML作为一种通用的数据交换格式,由于其...

    SQL.rar_SQL SERVER 2005_SQL Server2005_server2005

    10. **XML支持**:SQL Server 2005允许在XML数据类型中存储XML文档,可以直接对XML数据进行查询和操作。 掌握SQL Server 2005的项目开发不仅需要理解其核心功能,还要熟悉T-SQL语言,了解如何设计和优化数据库,...

    将SQL数据库表转换成XML文件输出(脚本)

    ### 将SQL数据库表转换成XML文件输出(脚本) #### 概述 在实际工作中,经常需要将数据库中的表数据导出为其他格式以便于传输或与其他系统进行交互。其中,XML作为一种广泛使用的数据交换格式,具备良好的跨平台性...

    sqlserver2005的base64加密解密函数

    在SQL Server 2005中,Base64编码是一种常用的数据编码方式,它将二进制数据转化为可打印的ASCII字符,常用于在网络上传输或存储非ASCII字符的数据。Base64编码能够确保数据在传输过程中不被篡改,因为它是通过特定...

    python遇到sql2005 varchar(4000) varchar(MAX)

    标题中的“python遇到sql2005 varchar(4000) varchar(MAX)”指的是在使用Python编程语言操作SQL Server 2005数据库时,可能会遇到处理两种不同大小的变长字符串类型——varchar(4000)和varchar(MAX)的问题。在SQL ...

    xml在sql_server_2008中的应用

    ### XML在SQL Server 2008中的应用详解 #### 一、XML简述 XML (Extensible Markup Language),即可扩展标记语言,是一种用于存储和传输...利用SQL Server提供的内置函数和操作,可以有效地管理、查询和操作XML数据。

    SQL Server 2005 T-SQL增强

    - **XML数据类型**: SQL Server 2005支持原生的XML数据类型,允许直接在数据库中存储和查询XML文档。 #### 错误处理 (Error Handling) SQL Server 2005在错误处理方面也有了很大的改进。以前版本的SQL Server使用...

    SQL Server FOR XML PATH 语句的应用

    ### SQL Server FOR XML PATH 语句的应用 #### 概述 在数据库操作中,将查询结果转换为XML格式的需求十分常见。SQL Server 提供了多种方法来生成XML数据,其中`FOR XML PATH`是最常用的方法之一。通过使用`FOR XML...

    SQL2005与XML

    Delphi作为面向对象的Pascal编程语言,可以通过ADO(ActiveX Data Objects)或ODBC(Open Database Connectivity)接口与SQL Server 2005进行通信,读取和写入XML数据。开发者可以使用TXMLDocument组件来处理XML,...

    SQL Server 2005实用教程

    SQL Server 2005支持多种数据类型,如数值类型(整型、浮点型、货币型等)、字符串类型(NVARCHAR、VARCHAR、NCHAR、CHAR等)、日期时间类型(DATE、DATETIME等)、二进制类型(BINARY、VARBINARY、IMAGE等)和特殊...

Global site tag (gtag.js) - Google Analytics