XML文件插入SQL Server2000資料庫(2)
在XML文件插入SQL Server2000資料庫(1) (http://blog.csdn.net/LoveLion/archive/2006/09/18/1237263.aspx
)中我講了一下怎麼將XML文件插入SQL server 2000資料庫,但是有一個問題,怎麼將一個現存的xml文件插入資料庫,不把xml文件當成字串來處理,而把它當作一個外部檔案讀入之後再進行處理,通過參考相關資料,可以通過下面的方法來進行操作:(假設電腦C盤下有一個名為product.xml的xml檔案,其根節點/子節點是'/productdata/PRODUCTS'),該檔案程式碼如下:
<?xml version="1.0" encoding="gb2312"?>
<productdata>
<PRODUCTS PRODUCTID="P030" PRODUCTNAME="BARBIE DOLL" DESCRIPTION="THIS IS A TOY FOR GIRLS" CATEGORY="TOY" PRICE="120" QOH="10" />
<PRODUCTS PRODUCTID="P031" PRODUCTNAME="MINI RACE CAR" DESCRIPTION="THIS IS A TOY FOR BOYS" CATEGORY="TOY" PRICE="130" QOH="12" />
<PRODUCTS PRODUCTID="P032" PRODUCTNAME="BABYS RATTLE" DESCRIPTION="THIS IS A TOY FOR BABIES" CATEGORY="TOY" PRICE="80" QOH="24" />
</productdata>
通過以下程式在查詢分析器中執行可以將以上資料插入表PRODUCTS:
DECLARE @FileName VARCHAR(255)
DECLARE @ExecCmd VARCHAR(255)
DECLARE @FileContents VARCHAR(8000)
DECLARE @idoc int
DECLARE @y INT
DECLARE @x INT
CREATE TABLE #tempXML(PK INT NOT NULL IDENTITY(1,1), ThisLine VARCHAR(255))
SET @FileName = 'C:/product.xml'
SET @ExecCmd = 'type ' + @FileName
SET @FileContents =''
INSERT INTO #tempXML EXEC master.dbo.xp_cmdshell @ExecCmd
SELECT @y = count(*) from #tempXML
SET @x = 0
WHILE @x <> @y
BEGIN
SET @x = @x + 1
SELECT @FileContents = @FileContents + ThisLine from #tempXML WHERE PK = @x
END
SELECT @FileContents as FileContents
DROP TABLE #tempXML
EXEC sp_xml_preparedocument @idoc OUTPUT, @FileContents
SELECT *
FROM OPENXML (@idoc, '/productdata/PRODUCTS', 1)
WITH (PRODUCTID char(4),
PRODUCTNAME VARCHAR(50),
DESCRIPTION varchar(100),
CATEGORY varchar(10)
)
INSERT PRODUCTS
SELECT *
FROM OPENXML(@idoc, '/productdata/PRODUCTS')
WITH PRODUCTS
EXEC sp_xml_removedocument @idoc
select * from products
該程式將XML文件首先以行為單位迴圈讀入一個字串變數@FileContents ,並建立一個臨時表#tempXML來儲存該xml文件生成的字串,待檔案處理完畢後刪除該臨時表,把@FileContents 帶入http://blog.csdn.net/LoveLion/archive/2006/09/18/1237263.aspx 所述方法中進行處理.從而實現對外部xml文件的插入.
相關文章
- NPM酷庫051:xml2js,解析XML格式資料NPMXMLJS
- H2資料庫文件索引資料庫索引
- 解決pl/sql developer中資料庫插入資料亂碼問題SQLDeveloper資料庫
- SQL 資料庫學習 Part 2SQL資料庫
- mongodb資料庫中插入資料MongoDB資料庫
- SQL Server 2014如何使用遊標迴圈向遠端資料庫插入資料SQLServer資料庫
- python如何將資料插入資料庫Python資料庫
- YII2 一次性往資料庫插入多行資料資料庫
- 分庫分表插入資料
- SQL資料庫SQL資料庫
- eazyexcel 讀取excel資料插入資料庫Excel資料庫
- python資料插入連線MySQL資料庫PythonMySql資料庫
- XML文件XML
- 企業資料庫工作2:團隊培養,如何高效閱讀資料庫文件資料庫
- Express 文件(資料庫整合)Express資料庫
- .NET 資料庫大資料 方案(插入、更新、刪除、查詢 、插入或更新)資料庫大資料
- MySQL 資料庫表格建立、資料插入及獲取插入的 ID:Python 教程MySql資料庫Python
- SQL Server 2014的資料庫引擎新增功能(參考sqlserver官方文件)SQLServer資料庫
- mybatis插入資料、批量插入資料MyBatis
- 使用binlog2sql工具來恢復資料庫SQL資料庫
- PostgreSQL 原始碼解讀(2)- 插入資料#2(RelationPutHeapTuple)SQL原始碼APT
- oracle-資料庫- insert 插入語句Oracle資料庫
- Java MyBatis 插入資料庫返回主鍵JavaMyBatis資料庫
- Python操作MongoDB文件資料庫PythonMongoDB資料庫
- SpringBoot整合Mongodb文件資料庫Spring BootMongoDB資料庫
- 關聯式資料庫與文件資料庫對比資料庫
- 資料庫界的Swagger:一鍵生成資料庫文件!資料庫Swagger
- 資料庫優化SQL資料庫優化SQL
- 【資料庫】SQL語句資料庫SQL
- 資料庫_SQL-MongoDB資料庫SQLMongoDB
- 資料庫_SQL-PostgreSQL資料庫SQL
- 資料庫映象 (SQL Server)資料庫SQLServer
- 資料庫-SQL 語法資料庫SQL
- SQL Server資料庫安全SQLServer資料庫
- db2 sql批量插入一張表插入另一張表DB2SQL
- MySQL資料庫binlog解析神器-binlog2sql應用MySql資料庫
- SQL Server2008 R2 資料庫映象配置方案SQLServer資料庫
- 解決hive資料庫 插入資料很慢的問題Hive資料庫
- 向PostgreSQL資料庫插入Date型別資料包錯SQL資料庫型別