快帮帮我,很急!!!我有一个xml格式的文件,需要导入到sqlserver2000中,怎么作呢?

ZHANGWEI15 2003-10-17 02:11:02
快帮帮我,很急!!!我有一个xml格式的文件,需要导入到sqlserver2000中,怎么作呢?

dts发现不能作,通过sqlserver本身能实现吗?
是不是要用外部程序来实现,请教一下怎么作呢?
最好给出代码vb或.net都可以,谢谢了!
我只要能导进去就可以了!

这是xml文件的一部分:
<?xml version="1.0" encoding="GB2312" standalone="yes"?>
<AreaCodeConf>
<state Name='浙江省分行'>
<City Name='绍兴' AreaCode='1211'>
<Branch Name='绍兴县农村信用合作社联合社钱清办事处' DispatchNo='802'/>
<Branch Name='浙江省绍兴诸暨市支行' DispatchNo='008'/>
</City>
</state>
</AreaCodeConf>

<state>和<city>还有许多,我需要得到的结果集字段有,放在一张表中!
state Name City Name AreaCode Branch Name DispatchNo
...全文
31 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
tylike 2003-11-24
  • 打赏
  • 举报
回复
openxml的使用格式如下
openxml(hdoc int,rowpattern nvarchar,[flags byte])
[with (schemadeclaration|tablename)]
其中:
hdoc为xml文档句柄
rowpattern为使用xpath指定xml文档的节点,该select查询该节点,将该节点的内容作为产生的记录,节点的属性或子元素内容作为记录字段值。
flags表示xml文档内容与产生的记录字之间的对应关系。flags的值及意义如下
0 默认值,以元素属性值对应的记录字段
1 以元素属性值对应的记录字段
2 以元素内容对应记录字段
8 以元素内容或属性值对应记录字段
schemadeclaration指定产生的记录字段 的结构信息
tablename使用已经存在的表结构来产生记录。
实例请参考《xml网页制作实作教程》8.6.3中的内容
我这些就是从这抄下来的。
如果没有帮上忙,算是帮顶了.:)
redpop 2003-11-20
  • 打赏
  • 举报
回复
?
redpop 2003-11-20
  • 打赏
  • 举报
回复
OPENXML(@hDoc, '/AreaCodeConf/State', 8) 为什么 使用 8 , 什么 时候 使用 1
fanxiangqin 2003-11-20
  • 打赏
  • 举报
回复
OPENXML(@hDoc, '/AreaCodeConf/State', 8) 为什么 使用 8 , 什么 时候 使用 1
eagle_hb 2003-10-27
  • 打赏
  • 举报
回复
帮UP
eagle_hb 2003-10-27
  • 打赏
  • 举报
回复
up
ZHANGWEI15 2003-10-18
  • 打赏
  • 举报
回复
这个文见我拿到的只是结果,由银行提供的
leimin 2003-10-18
  • 打赏
  • 举报
回复
通过上面的SP,你可以通过VB,VB.NET,C#等调用既可!
leimin 2003-10-18
  • 打赏
  • 举报
回复
create table XmlTable (
[State_Name] nvarchar(255),
[City_Name] nvarchar(255),
AreaCode varchar(12),
[Branch_Name] nvarchar(255),
DispatchNo varchar(3)
)

go
create proc usp_InsertXmlToTable
@xmldoc text
as
set nocount on
Declare @hdoc int
exec sp_xml_preparedocument @hdoc output,@xmldoc

create table #temptable([TempName] nvarchar(255),TempNo varchar(10),X int)

truncate table #temptable

begin
Insert into #temptable([TempName],TempNo,X)
SELECT [Name],DispatchNo,4 as X FROM OPENXML(@hDoc, '/AreaCodeConf/State/City/Branch', 8)
WITH ( [Name] nvarchar(255),
DispatchNo varchar(3)
)
union all
SELECT [Name],AreaCode,3 as X FROM OPENXML(@hDoc, '/AreaCodeConf/State/City', 8)
WITH ( [Name] nvarchar(255),
AreaCode varchar(3)
)
union all
SELECT [Name],0,2 as X FROM OPENXML(@hDoc, '/AreaCodeConf/State', 8)
WITH ( [Name] nvarchar(255)
)
end



begin
Insert into Xmltable
select (select [TempName] from #temptable where X=2) as State_Name ,
(select [TempName] from #temptable where X=3)as City_Name ,
(select [TempNo] from #temptable where X=3)as AreaCode ,
[TempName] as Branch_Name,TempNo as DispatchNo
from #temptable
where X=4
end

exec sp_xml_removedocument @hdoc

drop table #temptable
go
declare @xmldoc varchar(2000)
set @xmldoc='
<?xml version="1.0" encoding="GB2312" standalone="yes" ?>
<AreaCodeConf>
<State Name="浙江省分行">
<City Name="绍兴" AreaCode="1211">
<Branch Name="绍兴县农村信用合作社联合社钱清办事处" DispatchNo="802" />
<Branch Name="浙江省绍兴诸暨市支行" DispatchNo="008" />
</City>
</State>
</AreaCodeConf>'

exec usp_InsertXmlToTable @xmldoc

go
select * from xmltable
guid6 2003-10-18
  • 打赏
  • 举报
回复
up
qdubit 2003-10-18
  • 打赏
  • 举报
回复
关注!帮楼主顶一下!
yun198183 2003-10-18
  • 打赏
  • 举报
回复
帮忙up并学习
zjcxc 2003-10-17
  • 打赏
  • 举报
回复
由外部的什么程序提供?
ZHANGWEI15 2003-10-17
  • 打赏
  • 举报
回复
我的xml是有外部的程序提供的,我无法改
zjcxc 2003-10-17
  • 打赏
  • 举报
回复
你的XML文件是通过什么生成的?
txlicenhe 2003-10-17
  • 打赏
  • 举报
回复
直接用SQL,参考这个:
http://expert.csdn.net/Expert/topic/2341/2341997.xml?temp=.2739221
SQL语句导入导出大全
txlicenhe 2003-10-17
  • 打赏
  • 举报
回复
这里有VB的代码:
http://expert.csdn.net/Expert/topic/1408/1408298.xml?temp=.8890039

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧