XML文件插入SQL Server2000資料庫(1)
我們可以通過openxml函式和SQL server 2000中的兩個系統儲存過程sp_xml_preparedocument 和sp_xml_removedocument 將XML文件對映為相應的欄位插進資料庫。
系統儲存過程sp_xml_preparedocument 用來建立一個能被插入資料庫的XML文件的內部表示,即一個檔案號,該系統儲存過程返回一個可以用於訪問XML文件的內部表示的檔案號.sp_xml_removedocument 用於刪除XML文件的檔案號.也可以理解為,sp_xml_preparedocument 用於給XML文件分配記憶體空間,檔案號是指向該儲存空間的一個指標,通過對該檔案號的操作來操作該XML檔案,而sp_xml_removedocument 用於回收記憶體空間.
sp_xml_preparedocument儲存過程的語法:
sp_xml_preparedocument handledoc OUTPUT, xmltextstring
handledoc表示待處理XML文件的檔案號,作為該儲存過程的輸出(OUTPUT);
xmltextstring表示待處理的XML檔案,以字串的形式表示.
sp_xml_removedocument 儲存過程的語法:
sp_xml_removedocument handledoc
handledoc代表待刪除XML文件的檔案號
openxml函式的語法:
openxml(handledoc,rowpattern,flagvalue) with tablename/definition structure
handledoc表示XML文件的檔案號;
rowpattern表示用來識別XML文件有效性和節點的XPath模式的字串,如果一個XML的根節點是BOOKS,其直接子節點是BOOK,該字串的值為'/BOOKS/BOOK';
flagvalue表示XML文件與表欄位之間的對映關係,如果該值為1表示將rowpattern的屬性作為欄位來進行對映,如果為2表示將rowpattern的子元素作為欄位來進行對映;
tablename/definition structure表示待插入的表名,也可以是一個定義的表結構(見下例)。
DECLARE @doc varchar(1000)
DECLARE @idoc int
SET @doc = '<ROOT>
<TICKET>
<PASSENGERNAME> TOM WILKINS </PASSENGERNAME>
<AGE> 20 </AGE>
<SOURCE> CHICAGO </SOURCE>
<DESTINATION> MIAMI </DESTINATION>
<DATEOFTRAVEL> 2001-09-10 </DATEOFTRAVEL>
<CLASS> FIRST CLASS </CLASS>
<FARE> 200 </FARE>
<STATUS> Confirmed </STATUS>
</TICKET>
</ROOT>'
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
SELECT *
FROM OPENXML (@idoc, '/ROOT/TICKET', 1)
WITH (PASSENGERNAME varchar(30),
AGE int,
SOURCE CHAR(20),
DESTINATION char(20),
DATEOFTRAVEL datetime,
CLASS char(20),
FARE money,
STATUS char(20)
)
INSERT TICKET
SELECT *
FROM OPENXML(@idoc, '/ROOT/TICKET')
WITH TICKET
EXEC sp_xml_removedocument @idoc
相關文章
- 解決pl/sql developer中資料庫插入資料亂碼問題SQLDeveloper資料庫
- #資料庫3-1_SQL概述資料庫SQL
- mongodb資料庫中插入資料MongoDB資料庫
- SQL Server 2014如何使用遊標迴圈向遠端資料庫插入資料SQLServer資料庫
- python如何將資料插入資料庫Python資料庫
- 分庫分表插入資料
- SQL資料庫SQL資料庫
- eazyexcel 讀取excel資料插入資料庫Excel資料庫
- python資料插入連線MySQL資料庫PythonMySql資料庫
- XML文件XML
- PostgreSQL 原始碼解讀(1)- 插入資料#1SQL原始碼
- Express 文件(資料庫整合)Express資料庫
- .NET 資料庫大資料 方案(插入、更新、刪除、查詢 、插入或更新)資料庫大資料
- MySQL 資料庫表格建立、資料插入及獲取插入的 ID:Python 教程MySql資料庫Python
- SQL Server 2014的資料庫引擎新增功能(參考sqlserver官方文件)SQLServer資料庫
- NPM酷庫051:xml2js,解析XML格式資料NPMXMLJS
- mybatis插入資料、批量插入資料MyBatis
- 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資料庫
- 解決hive資料庫 插入資料很慢的問題Hive資料庫
- 向PostgreSQL資料庫插入Date型別資料包錯SQL資料庫型別
- laravel實現100w大量資料插入資料庫Laravel資料庫
- MyBatis SQL資料庫xml處理小於號與大於號正確的格式MyBatisSQL資料庫XML
- Sql Server 資料庫學習-常用資料庫 物件SQLServer資料庫物件
- 批量插入 1 萬條資料,DB 查詢構造器和原生 SQL 效能比較SQL
- SQL在自增列插入指定資料的操作方法SQL
- T-SQL——關於表資料的複製插入SQL
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer