批量写数据---将XML数据批量写入数据库

大数据_数据库(DBMS、DB、SQL ) 目录 开篇 一、数据库 1.数据库(通常概念) 1.1数据库简介 1.2数据库的好处 1.3数据库相关概念 2.DBMS数据库管理系统概述 2.1 具体概念 2.2DBMS根据数据的保存格式(数据库的种类)来进行分类 层次数据库(Hierarchical Database,HDB) 关系数据库(Relational Database,RDB) 面向对象数据库(Object Oriented Database,OODB) XML数据库(XML Database,XMLDB) ... 阅读详情
将数据批量写入数据库的需求是比较多的,方法也有很多种,在.net 里使用程序比较好的方法是 使用 Bulk Copy 将大量数据复制到数据库 。如果数据源为XML文件,使用SQL BULK COPY就需要将XML数据导入到DataTable,下面的方法可以直接将XML数据传到SQL SERVER然后处理,另外还可以直接使用T-SQL将XML文件的数据导入到数据库。这里最主要的是要使用二个系统存储过程: SP_XML_PREPAREDOCUMENT 和 SP_XML_REMOVEDOCUMENT     SP_XML_PREPAREDOCUMENT 的功能是:读取XML文件后使用 MSXML 分析器 (Msxmlsql.dll) 对XML数据进行分析,并提供分析后的文档供使用。分析后得到的数据是对 XML 文件中的各节点(元素、属性、文本和注释等)以树状形式表现。分析后的数据存储在 SQL Server 的内部缓存中。     SP_XML_REMOVEDOCUMENT 的功能是:根据文档句柄释放文档所占的内存。     先建立一个XML字符串和一个表:
<?xml version="1.0"?> <ROOT>     <USER ID="1" Name="SBQCEL"/>     <USER ID="2" Name="PEACELI"/>     <USER ID="3" Name="SHEEPCHANG"/> </ROOT>
   
CREATE TABLE  Users (     UserId INT ,     UserName VARCHAR(20 )  )
   处理的方法很简单:
DECLARE @HDOC INT    --文档句柄 DECLARE @XMLSTRING VARCHAR(200)        --XML字符串 SET @xmlString ='<?xml version="1.0"?> <ROOT>     <USER ID="1" Name="SBQCEL"/>     <USER ID="2" Name="PEACELI"/>     <USER ID="3" Name="SHEEPCHANG"/> </ROOT>' --使用系统存储过程SP_XML_PREPAREDOCUMENT分析XML字符串 EXEC SP_XML_PREPAREDOCUMENT @HDOC OUTPUT, @XMLSTRING --使用OPENXML从SQL Server 的内部缓存查询数据 INSERT INTO Users SELECT * FROM OPENXML(@HDOC,N'/ROOT/USER') WITH  (      ID INT,     Name VARCHAR(10) ) --使用系统存储过程SP_XML_REMOVEDOCUMENT释放内存 EXEC SP_XML_REMOVEDOCUMENT @HDOC
   如果要用T-SQL直接读取一个XML文件并将数据导入到表里,需要做一些额外的处理:先要用 XP_CMDSHELL将XML数据读到一个临时表(变量表),然后将每行数据组合成一个字符串,再用上面的方法处理。需要注意的是XP_CMDSHELL以行来处理数据的。下面是一个简单的事例:
-- 定义一个变量表临时存储调用XP_CMDSHELL后得到的数据 DECLARE   @TEMP   TABLE (     ID  INT   IDENTITY ( 1 , 1 ),     XMLSTRING  VARCHAR ( 200 ) ) -- 使用XP_CMDSHELL将XML文件的数据插入到变量表里 INSERT   INTO   @TEMP   EXEC  MASTER.DBO.XP_CMDSHELL  ' TYPE E:/A.XML ' DECLARE   @LOOP   INT ,     -- 循环计数          @COUNT   INT ,     -- 行数          @XMLSTRING   VARCHAR ( 200 )     -- 存储XML字符串 SELECT    @LOOP   =   1 ,     -- 从第1行开始          @XMLSTRING = '' ,     -- 初始化          @COUNT   =  ( SELECT   COUNT ( 1 )  FROM   @TEMP )     -- 获得行数 -- 做一个循环,将数据组合成一个字符串以便处理 WHILE  ( @LOOP <= @COUNT ) BEGIN           SELECT   @XMLSTRING   =   @XMLSTRING   +  XMLSTRING  FROM   @TEMP   WHERE  ID  =   @LOOP      SET   @LOOP   =   @LOOP   +   1 END -- 查看处理结果 SELECT   @XMLSTRING
用上面的方法处理后就将一个XML文件的数据组合成一个字符串了,然后就可以用上面的方法将数据导入到数据库了
XML学习:读取XML文件数据并写入数据库             string uid = "";            string uname = "";            string upass = "";            string sql = "";            #region 读取XML数据并写入数据库            /*XmlDocument doc = new XmlDocument();/... 阅读详情

相关推荐

使用java解析XML文件,解析完之后将解析结果导入mysql数据库中

使用java解析XML文件,解析完之后将解析结果导入mysql数据库中

用友u8怎么导出凭证_CASE11 用友U8导入期初&档案&凭证&批量作废&编辑&自动现流(1/5)...

不能上链接,带附件的,微信公众号,搜【财会人nAzy】,同课程内有链接地址。———————————————标题有些长哈,我也不想的,问题是,这是个闭环,缺一不可。常见的财务软件,用友、金蝶都支持直接导入生成凭证,文件无非三种,一为文本文件Txt,二为Excel文件xls,三为xml文件;金蝶及高版本的用友都适用xls文件,早期版本的用友分别用Txt及xml(NC5),到了NC6也改为了xls了。本...

weixin_42512913的博客 1601

逆变器母线电容选型与均压电阻设计实战指南

本文为逆变器母线电容选型与均压电阻设计提供了实战指南。文章从工程角度出发,详细解析了母线电容耐压值、容值的计算方法,并重点强调了纹波电流热设计的重要性。同时,深入探讨了串联电容均压电阻的设计原则与功率计算,通过5.5kW变频器案例,系统演示了从参数确定到最终选型的完整流程,旨在帮助工程师设计出稳定可靠的逆变器系统。

weixin_29299807的博客 291

Mybatis的mapper.xml批量插入、修改sql

帮忙生成了一个批量修改的sql,后续我忘记是不是手动给标签手动加的这个属性,结果报错了,排查了半天这个sql哪里错了,最后还是放到数据库执行了一下看到了错误原因,当时我还让温馨一样帮忙检查了下我修改后的sql,结果还说没sql没问题,只是可能在拼接时报错。要修改的表字段B = case when 表字段 = 实体数据字段 then 实体数据字段 when 表字段 = 实体数据字段 then 实体数据字段 when …end where 条件。

L_Mr_ll的博客 5489

贝加莱Automation Studio 4.10安装保姆级教程:从官网下载到解决.Net 3.5报错

本文提供贝加莱Automation Studio 4.10的详细安装教程,涵盖从官网下载到解决.Net 3.5报错的全过程。特别针对工业自动化开发环境中常见的.Net Framework 3.5安装问题,提供多种经过验证的解决方案,包括控制面板安装、DISM命令离线安装和手动下载安装包等方法,帮助工程师顺利完成PLC开发环境的搭建。

weixin_30955617的博客 711

基于Abaqus的横向各向同性线弹性理想塑性材料模型的umat子程序实现——以Fortran为例,带您揭秘弹性塑性模型编程之道

通过以上步骤,我们已经在Abaqus中使用Fortran实现了横向各向同性线弹性理想塑性材料模型的umat子程序。在实际应用中,我们需要根据具体的材料特性和加载条件来调整模型参数和计算过程。尽管我在这篇文章中尽力提供了详细的教程,但由于我自身的知识限制和经验不足,可能会有误解或错误。我希望大家在学习过程中能多思考,多实践,多交流,以更好地理解和掌握这个主题。

qq_38334677的博客 1690

批量写xml和添加数据到数据库

目录 1、批量添加数据到数据库 1.1、Python与sqlite数据库连接 1.2、单条添加数据到数据库 1.3、批量添加数据到数据库 2、批量创建xml 2.1、创建xml 2.2、批量xml 1、批量添加数据到数据库 1.1、Python与sqltie数据连接 连接方法 import sqlite3 sqlite3.connect(db文件路径) 1.2、单条添加到数据库 第一、先建立连接 #导入sqlite3库 import sqlite...

qq_58370894的博客 3470

国资e学快速学习实战教程

本文主要介绍了国资e学快速学习实战教程,希望能对同学们有所帮助。 文章目录 1. 前言 2. 实战教程

weixin_43178406的博客 11万+

批量插入数据SQL写法,批量处理数据

减少与数据库的交互,把之前的一条一条查的代码优化为一次性全部查出,然后在批量处理数据。如果数据量太大(超2万)直接用SQL去批量处理有可能会报错,那是因为数据库单次处理数据的能力有限所以可以分批次处理。今天在进行功能优化中遇到了碰到了一个功能,要处理10万条数据。在最开始开发时没有考虑那么多直接以单条数据来处理没有考虑到大批量数据的情况,导致功能不符合预期。**1:**批量插入数据的SQL ,xml文件编写。查出的几万条数据分批次处批量插入。

weixin_51114236的博客 7816

【动态导通电阻】GaN功率器件中动态导通电阻退化的机制、表征及建模方法

研究目的:鉴于动态RON退化对GaN功率器件性能的显著影响,本文旨在全面综述和讨论GaN功率器件中动态RON退化的机制、表征方法、建模技术以及解决方案,以期为GaN功率器件的设计、优化和应用提供理论指导和实践参考。内容概述:文章首先分析了缓冲层陷阱和栅极不稳定导致动态RON退化的物理机制,并通过物理基础的TCAD模拟与高压背栅测量结果进行对比,揭示缓冲层陷阱的充电/放电过程如何影响动态RON。接着,讨论了不同GaN器件技术中栅极不稳定引起的动态RON增加以及栅极过驱动的作用。

荷塘阅色 1166

高通Camx功能feature分析之十:高通NCS服务之注册和启动

本文介绍了高通NCS(非相机传感器)服务的注册与启动流程。NCS通过QMI接口访问陀螺仪等传感器,为相机EIS/AEC等功能提供辅助数据。文章详细解析了服务注册时的QueryCapabilites能力查询、RegisterService注册流程,以及通过StartNCSService启动服务线程的过程。重点包括:1)AF/EIS等节点通过NCSService创建传感器对象;2)注册时需校验传感器类型和接口;3)首次注册成功后会启动NCS服务线程;4)采样率变化时需重新配置会话。通过线程池管理实现传感器数据的

1261

【MySQL】xml中MyBatis动态sql之批量修改、批量新增(使用foreach标签一条sql解决)

即使人生大写着失败,鲁莽也比怯懦更接近勇敢!

weixin_61428498的博客 3148

【异常】Claude Code 在 Windows CMD 中出现重影现象的排查与解决

Windows CMD运行Claude Code时出现文字重影、乱码等问题,原因是传统CMD对现代ANSI终端控制序列支持不足。解决方案包括:1)推荐安装Windows Terminal(完全支持ANSI标准);2)使用PowerShell 7;3)优化CMD设置(启用虚拟终端、UTF-8编码);4)关闭Claude Code视觉特效。建议优先使用Windows Terminal以获得最佳体验,这是最彻底的解决方案。其他方案仅能部分改善或缓解问题。

奶爸的编程之路,也就一周冷个三天 1958

300 秒到 4 秒,如何将 MySQL 批量写入的耗时缩短 99%?

最近碰到一个场景,从 XML 文件导入 6 万多条数据到 MySQL 中。需求并不复杂,基于 XML 文件和 xlsx 文件的相似性,其实这就是一个老生常谈的数据导入问题。本文将介绍我如何将导入操作耗时从 300 秒优化到 4 秒。

m0_73735578的博客 741

高云FPGA系列教程(1):FPGA和ARM开发环境搭建

至此,高云FPGA和MCU开发环境就搭建完成了,整体还是比较简单的,几乎是一键完成,下一篇文章我们进行实际的FPGA和MCU开发。本文是高云FPGA系列教程的第1篇文章。

whik1194的博客 6186

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

oracle XML DB的使用

XML DB简介 Oracle XML DB 是一组专门为 XML 开发的内置高性能存储和检索技术,首次随 Oracle9i 数据库第 2 版推出。OracleXML DB 将 World Wide Web Consortium (W3C) XML 数据模型完全吸收到 Oracle9i 数据库中,并为导航和查询 XML 提供了新的标准访问方法。可以同时获得关系数据库技术和 XML 技术的所有优势

java的涟漪 8685

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

数据仓库和数据库的区别

本文主要介绍数据仓库和数据库的区别,首先描述下数据仓库是什么: 数据仓库的本质还是一个数据库,它将各个异构的数据源数据库的数据给统一管理起来,并且完成了质量较差的数据的剔除、格式转换,最终按照一种合理的建模方式来完成源数据组织形式的转变,以更好的支持到前端的可视化分析。 数据仓库中主要存储的是结构化的数据,但是它的来源可以是多种类型的数据来源(结构化、半结构化、非结构化),中间需要一个ETL过程。 一、用途 数据库:主要用于事务处理,即OLTP(Transaction),也就是我们常用的面向业务的增删改查操

啥也不是 2万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

将XML文档写入数据库

1.在操练之前,先准备一个XML文件FirstXml.xml和FirstXml.xsd,并且这两个文件都在根目录下面,其内容分别如下:FirstXml.xml{       1     AAA     0         2     BBB     0         3     CCC     0     }FirstXml.xsd{       This code was g

qinghecool的专栏 8051

MyBatis中批量插入数据库与批量更新数据库的XML代码写法

MyBatis中批量插入数据库与批量更新数据库的XML代码写法下面以MySQL为例讲解。一、批量插入(insert)DAO层接口定义:int insertBatch(@Param("arrtest")TestEntity[] arrTest);XML文件配置:&lt;insert id="insertBatch"&gt; insert into TEST (STATE, TESTID, TYP...

iw1210的专栏 1万+

XML数据库与db4o的简要对比

前两天,我公布了正在开发的XML数据库的一些信息,下面这个文章演示了什么是XML数据库,以及如何使用它。 XML数据库一睹为快 http://www.cnblogs.com/chenxizhang/archive/2009/08/09/1542354.html   文章发表之后,得到了很多朋友的反馈和积极参与讨论,我这里就不一一列举了。期间有多位朋友提到了另外一个开源的面向对象的数据库:db4o

陈希章@中国 840
上一篇: 获取某一月的天数 and 获取本周的周一
下一篇: 最常用Oracle 命令集合 学习oracle很有帮助!
software815
博客等级 码龄19年 22粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值