CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

XML文件导入SQL数据库的问题

楼主dengql()2006-06-03 18:47:28 在 MS-SQL Server / 基础类 提问

将XML文件导入到数据库,用  
  DECLARE       @doc       varchar(8000)    
  DECLARE   @hDoc   int    
          EXEC   sp_xml_preparedocument   @hDoc   OUTPUT,   @doc  
          INSERT   INTO   Employee    
              SELECT   *    
              FROM   OPENXML(@hDoc,   '/Employee')    
                          WITH   Employee    
            EXEC   sp_xml_removedocument   @hDoc    
  导入有几个问题:  
  1.可不可以直接关联XML文件而不用转换为varchar(8000)?用bulk   insert将XML文件内容导入到一个临时表,再转为字符串,在这个过程中,花的时间也较多,而且试了几次,明明XML文件没有错误,用SQLXML组件可以导得进,但老是提示不正确。  
  2.对XML文件的大小或数据量有没有限制?我们要导数据的XML文件有上百M左右  
  3.与用SQLXML组件相比,在速度上哪个快?(同时SQLXML组件对文件大小没限制) 问题点数:100、回复次数:3Top

1 楼zjcxc(邹建)回复于 2006-06-03 20:37:24 得分 0

sql   2000要直接用sql语句处理的话,   似乎只有bcp/bulk   insert好用,   由于2000最大支持8000字节的变量,   因此对导入的文件当然有限制,   不能大于8000字节.  
   
        至于导入后,   xml不正确的问题,   可能是导入时被截断了(不支持超过8000的嘛),   另一个问题可能是xml文件中的一些字符被当成列分隔符了,   这样导致导入的数据错乱了  
   
  几百M的文件直接用sql处理不了  
   
   
  能够处理的方法是使用存储过程,   定义ntext   参数,   然后程序读取xml数据传递给存储过程,   由于ntext支持2G字节的数据,   所以能够处理上百M的文件.  
   
   
  效率上不好说,   看你做什么处理,   不过,   几百M的文件集中在sql服务器上处理,   网络会受到考验,   服务器的负载也会特别重.    
  建议还是程序处理.Top

2 楼zjcxc(邹建)回复于 2006-06-03 20:40:53 得分 0

sql2005对xml的支持十分好,   在sql   2005中,   用类似下面的方法就可以读取xml文件了,   而且结果直接是xml数据类型,   可以做各种处理  
   
   
  SELECT   CAST(Info   as   xml)  
  FROM   OPENROWSET(BULK   'C:\a.xml',   SINGLE_BLOB)A(Info)Top

3 楼dengql()回复于 2006-06-04 16:49:56 得分 0

谢谢!Top

相关问题

关键词

得分解答快速导航

  • 帖主:dengql

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo