当前位置:首页 » 编程语言 » sql导入xml

sql导入xml

发布时间: 2022-05-18 22:03:51

‘壹’ sql导入xml文件

我是一千道风在那里吹过。
还有个个孩子为春天和花园里
你我是独醉的那一杯,醇入心诗,芳入画魂,
合着柔云绕月
我迷失了方向,从软绵绵的
曾悄悄的飘来哈哈

‘贰’ 如何将指定位置下的XML文件导入SQL Server

SQLServer2005分解并导入xml文件[@more@]
1. 一次性导入:
DECLARE @idoc int;
DECLARE @doc xml;
SELECT @doc=BulkColumn FROM OPENROWSET(BULK N'E:MStarInstryCodes.xml', SINGLE_BLOB) AS x
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc

SELECT * into tmp_tab FROM OPENXML (@idoc, '/Root/Record'/',2)
WITH
(
InstryCode varchar(10)
,InstryGlobalId varchar(10)
,InstryName varchar(100)
,SectorCode varchar(10)
,SectorGlobalId varchar(10)
,SectorName varchar(100)
,SuperSectorCode varchar(10)
,SuperSectorName varchar(100)
,GroupCode varchar(10)
,GroupName varchar(100)
,CountryId varchar(3)
)
EXEC sp_xml_removedocument @idoc
select * from tmp_tab
2. 先导入到表中varchar(MAX)列,然后再用OPENXML解析,读出。
-- 使用SINGLE_CLOB参数,tmp_raw中字段为varcahr(MAX)类型
SELECT * into tmp_raw FROM OPENROWSET(BULK N'E:MStarInstryCodes.xml', SINGLE_CLOB) AS x
DECLARE @idoc int;
DECLARE @doc xml;
select @doc = BulkColumn from tmp_raw
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
SELECT top 10 * FROM OPENXML (@idoc, '/Root/Record', 1)
WITH
(
InstryCode varchar(10)
,InstryGlobalId varchar(10)
,InstryName varchar(100)
,SectorCode varchar(10)
,SectorGlobalId varchar(10)
,SectorName varchar(100)
,SuperSectorCode varchar(10)
,SuperSectorName varchar(100)
,GroupCode varchar(10)
,GroupName varchar(100)
,CountryId varchar(3)
)
EXEC sp_xml_removedocument @idoc

‘叁’ SQL2008如何用作业将查询结果导出,以及作业导入XML文件

1、打开 SQL server企业管理器,新建查询,在窗口中输入查询语句并执行。
2、全选查询的结果,选择“连同标题一起复制”,然后打开EXCEL,新建Excel表格,进行粘贴即可。

3、或者在全选查询结果之后,直接选择“将结果另存为”,选择对应的保存格式。

4、如果要自动实现这一过程,需要自行编写程序,连接SQL数据库,查询,保存查询数据到指定格式的文件中。

‘肆’ 如何用plsql developer 导入xml格式的数据文件

用pl/sql developer导出表的数据时有三种方式:Oracle Export,Sql Insert,pl/sql developer

区别

导出数据到excel文件

excel数据导入到数据库

PL/SQL Developer是Oracle数据库中用于导入或导出数据库的主要工具之一,这里主要介绍如何利用PL/SQL Developer导入和导出数据库,并对导入或导出时的一些注意事项进行相关说明。1、导出步骤1.1. tools ->export user object 选择选项,导出.sql文件 说明:导出的是建表语句(包括存储结构)

1.2. tools ->export tables-> Oracle Export 选择选项导出.dmp文件 说明:包含三种导出方式,三种方式都能导出表结构以及数据,如下:

第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最为广泛 。

第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob,long),如果有,会提示不能导出(提示如下: table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead)。

第三种是导出为.pde格式的,.pde为Pl/sql developer自有的文件格式,只能用Pl/sql developer自己导入导出,不能用编辑器查看。
10
2.导入步骤:a.tools->import tables->SQL Inserts 导入.sql文件。b. tools->import talbes->Oracle Import然后再导入dmp文件。 说明:和导出类似,另外,导入之前最好把以前的表删除,当然导入另外数据库除外。

‘伍’ 将XML文件导入SQL

首先将XML拆解出来:

declare @变量名A XML

set @变量名A='XML内容COPY进来,如果有中文的话,在单引号前加 N '
declare @变量名B int
exec sp_xml_preparedocument @变量名B output,@变量名A

接下来就是把XML数据形成表在SQL里面显示出来= =:

举个例子,
XML内容是:
<ROOT>
<Customer CustomerID="C01" Name="Samsung">
<Order OrderID="O01" Qty="1000">
<OrderDate>1998-1-1</OrderDate>
<Description>100 missing</Description>
</Order>
<Order OrderID="O02" Qty="200">
<OrderDate>2000-1-1</OrderDate>
<Description>10 smaller than specified size</Description>
</Order>
</Customer>
<Customer CustomerID="C02" Name="Nokia">
<Order OrderID="O03" Qty="500">
<OrderDate>2000-1-1</OrderDate>
<Description>Perfect this time</Description>
</Order>
<Order OrderID="O04" Qty="100"></Order>
</Customer>
</ROOT>

那么你的代码就应该这么打:
select*from
openxml(@变量名B,'/ROOT/Customer/Order',1)
with
(
订单编号 char(3) '@OrderID',
数量 int '@Qty',
订单日期 date 'OrderDate',
描述 varchar(30) 'Description'
)

with后面是表里的内容,想要什么就就打什么,单引号内是你引用的东西。

最后释放内存:

exec sp_xml_removedocument @变量名B

呃。。不懂再问把,

‘陆’ 在xml文件中插入sql语句

public class XMLTest
{
private Hashtable<String, String> hashtable;
private Vector sqlv=new Vector(); //用来存放Hashtable
public Hashtable getSQL(){
hashtable=new Hashtable<String, String>();
try{
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
//path得到的值为 D:\tomcat5520\bin 即%tomcat%\bin目录
String path=System.getProperty("user.dir");
System.out.println("在XMLTest.java文件中打印user.dir的值为--"+path);
int pos=path.lastIndexOf("\\");
//下面这条语句得到的是 目录%tomcat%
path=path.substring(0,pos);
Document doc=db.parse(path+"/webapps/WebRoot/WEB-INF/sql-config.xml");

Element root=doc.getDocumentElement();
NodeList list=root.getElementsByTagName_r("sql-info");
for(int i=0;i<list.getLength();i++){
//得到第i个sql-info节点元素
Element name=(Element)list.item(i);

//在当前的sql-info节点中 取出所有的sql-name对应的节点
NodeList info=name.getElementsByTagName_r("sql-name");
//在当前当前的sql-info节点中 得到sql-name的多个节点,始终只取其中的第一个节点
Element nameelement=(Element)info.item(0);
//在当前当前的sql-info节点中 得到sql-name的多个节点,始终只取其中的第一个节点sql-name对应的文本的值
String namestr=nameelement.getFirstChild().getNodeValue();

//在当前的sql-info节点中 取出所有的sql-value对应的节点
NodeList sql=name.getElementsByTagName_r("sql-value");
//在当前当前的sql-info节点中 得到sql-value的多个节点,始终只取其中的第一个节点
Element sqlelement=(Element)sql.item(0);
//在当前当前的sql-info节点中 得到sql-value的多个节点,始终只取其中的第一个节点sql-value对应的文本的值
String sqlstr=sqlelement.getFirstChild().getNodeValue();
// System.out.println("sql语句为:"+sqlstr);
hashtable.put(namestr,sqlstr); //放入到Hashtable中
}
}catch(Exception e){
System.out.println("读取sql-config.xml "+e.getMessage());
}
return hashtable;
}

public void addHashtable(){
if(sqlv==null)
sqlv=new Vector();
Hashtable ht=getSQL(); //得到配置文件的Hashtable
sqlv.add(ht);
}

public Hashtable getHashtable(){
Hashtable ht=null;
if(sqlv==null)
sqlv=new Vector();
if(sqlv.isEmpty()){
addHashtable();
}
ht=(Hashtable)sqlv.get(0);
return ht;
}

public static void main(String[] args) throws Exception
{

XMLTest xt=new XMLTest();
Hashtable ht=xt.getSQL();
System.out.println(ht.get("在途"));
}
}

‘柒’ xml文件导入sql数据库

SQLServer2005分解并导入xml文件[@more@]
1. 一次性导入:
DECLARE @idoc int;
DECLARE @doc xml;
SELECT @doc=BulkColumn FROM OPENROWSET(BULK N'E:MStarInstryCodes.xml', SINGLE_BLOB) AS x
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc

SELECT * into tmp_tab FROM OPENXML (@idoc, '/Root/Record'/',2)
WITH
(
InstryCode varchar(10)
,InstryGlobalId varchar(10)
,InstryName varchar(100)
,SectorCode varchar(10)
,SectorGlobalId varchar(10)
,SectorName varchar(100)
,SuperSectorCode varchar(10)
,SuperSectorName varchar(100)
,GroupCode varchar(10)
,GroupName varchar(100)
,CountryId varchar(3)
)
EXEC sp_xml_removedocument @idoc
select * from tmp_tab
2. 先导入到表中varchar(MAX)列,然后再用OPENXML解析,读出。
-- 使用SINGLE_CLOB参数,tmp_raw中字段为varcahr(MAX)类型
SELECT * into tmp_raw FROM OPENROWSET(BULK N'E:MStarInstryCodes.xml', SINGLE_CLOB) AS x
DECLARE @idoc int;
DECLARE @doc xml;
select @doc = BulkColumn from tmp_raw
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
SELECT top 10 * FROM OPENXML (@idoc, '/Root/Record', 1)
WITH
(
InstryCode varchar(10)
,InstryGlobalId varchar(10)
,InstryName varchar(100)
,SectorCode varchar(10)
,SectorGlobalId varchar(10)
,SectorName varchar(100)
,SuperSectorCode varchar(10)
,SuperSectorName varchar(100)
,GroupCode varchar(10)
,GroupName varchar(100)
,CountryId varchar(3)
)
EXEC sp_xml_removedocument @idoc

‘捌’ xml文件如何写入sql数据库

sqlserver2005分解并导入xml文件[@more@]
1.
一次性导入:
declare
@idoc
int;
declare
@doc
xml;
select
@doc=bulkcolumn
from
openrowset(bulk
n'e:mstarinstrycodes.xml',
single_blob)
as
x
exec
sp_xml_preparedocument
@idoc
output,
@doc
select
*
into
tmp_tab
from
openxml
(@idoc,
'/root/record'/',2)
with
(
instrycode
varchar(10)
,instryglobalid
varchar(10)
,instryname
varchar(100)
,sectorcode
varchar(10)
,sectorglobalid
varchar(10)
,sectorname
varchar(100)
,supersectorcode
varchar(10)
,supersectorname
varchar(100)
,groupcode
varchar(10)
,groupname
varchar(100)
,countryid
varchar(3)
)
exec
sp_xml_removedocument
@idoc
select
*
from
tmp_tab
2.
先导入到表中varchar(max)列,然后再用openxml解析,读出。
--
使用single_clob参数,tmp_raw中字段为varcahr(max)类型
select
*
into
tmp_raw
from
openrowset(bulk
n'e:mstarinstrycodes.xml',
single_clob)
as
x
declare
@idoc
int;
declare
@doc
xml;
select
@doc
=
bulkcolumn
from
tmp_raw
exec
sp_xml_preparedocument
@idoc
output,
@doc
select
top
10
*
from
openxml
(@idoc,
'/root/record',
1)
with
(
instrycode
varchar(10)
,instryglobalid
varchar(10)
,instryname
varchar(100)
,sectorcode
varchar(10)
,sectorglobalid
varchar(10)
,sectorname
varchar(100)
,supersectorcode
varchar(10)
,supersectorname
varchar(100)
,groupcode
varchar(10)
,groupname
varchar(100)
,countryid
varchar(3)
)
exec
sp_xml_removedocument
@idoc

‘玖’ 怎么利用sqlxml4.0把xml文件导入到sql server

select * from 表名 for xml

以下是详细介绍:

FOR 子句

FOR 子句用于指定 BROWSE 或 XML 选项(BROWSE 和 XML 是不相关的选项)。
语法

[ FOR { BROWSE | XML { RAW | AUTO | EXPLICIT }
[ , XMLDATA ]
[ , ELEMENTS ]
[ , BINARY BASE64 ]
}
]
参数

BROWSE

指定当查看 DB-Library 浏览模式游标中的数据时允许更新。如果表包含时间戳列(用 timestamp 数据类型定义的列),表有唯一索引且 FOR BROWSE 选项在 SELECT 语句的最后发送到 SQL Server,则可以在应用程序中浏览该表。

说明 在含有 FOR BROWSE 选项的 SELECT 语句中无法使用 <lock_hint> HOLDLOCK。

FOR BROWSE 选项不能出现在用 UNION 运算符联接的 SELECT 语句中。

XML

指定查询结果将作为 XML 文档返回。必须指定下列 XML 模式之一:RAW、AUTO、EXPLICIT。

RAW

获得查询结果并将结果集内的各行转换为 XML 元素,用一般标识符 <row /> 作为元素标记。

测试:
select top 2 图书编号=BookNo,图书名称=BookName from sys_books as图书信息 FOR XML raw

结果:
<row 图书编号="B001" 图书名称="1"/><row 图书编号="B002" 图书名称="体育报(上海)"/>

AUTO

以简单的嵌套 XML 树返回查询结果。在 FROM 子句内,每个在 SELECT 子句中至少有一列被列出的表都表示为一个 XML 元素。SELECT 子句中列出的列映射到适当的元素特性。
测试:
select top 2 图书编号=BookNo,图书名称=BookName from sys_books as 图书信息 FOR XML auto

结果:
<图书信息 图书编号="B001" 图书名称="1"/><图书信息 图书编号="B002" 图书名称="体育报(上海)"/>

EXPLICIT

指定显式定义所得到的 XML 树的形状。使用此种模式,要求以一种特定的方式编写查询,以便显式指定有关期望的嵌套的附加信息。

XMLDATA

返回架构,但不将根元素添加到结果中。如果指定了 XMLDATA,它将被追加到文档上。

ELEMENTS

指定列作为子元素返回。否则,列将映射到 XML 特性。

测试:
select top 2 图书编号=BookNo,图书名称=BookName from sys_books as 图书信息 FOR XML AUTO,ELEMENTS

结果:
<图书信息><图书编号>B001</图书编号><图书名称>1</图书名称></图书信息><图书信息><图书编号>B002</图书编号><图书名称>体育报(上海)</图书名称></图书信息>

NARY BASE64

指定查询返回二进制 base64 编码格式的二进制数据。使用 RAW 和 EXPLICIT 模式检索二进制数据时,必须指定该选项。这是 AUTO 模式中的默认值。

‘拾’ 请教向sql数据库插入xml文件怎么 弄的

把字段类型定义为xml再插入就可以了

热点内容
c语言编译后图片 发布:2025-05-15 13:51:57 浏览:792
没有被调用的函数会参与编译吗 发布:2025-05-15 13:42:51 浏览:260
在计算机中ftp的中文 发布:2025-05-15 13:41:07 浏览:1000
国网校招要网签密码和账号干什么 发布:2025-05-15 13:40:25 浏览:179
java分 发布:2025-05-15 13:34:36 浏览:846
如何下载卡巴斯基安卓版 发布:2025-05-15 13:34:36 浏览:480
排序函数c语言 发布:2025-05-15 13:06:28 浏览:6
韩服lol挂机脚本 发布:2025-05-15 12:42:56 浏览:462
监控存储服务器如何调试 发布:2025-05-15 12:36:30 浏览:219
一万级净化车间有哪些配置 发布:2025-05-15 12:16:41 浏览:98