Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将XML转换为SQL Server数据库_Sql Server_Xml - Fatal编程技术网

Sql server 将XML转换为SQL Server数据库

Sql server 将XML转换为SQL Server数据库,sql-server,xml,Sql Server,Xml,我知道这里很少有其他成员问过这个问题,但他们的需求略有不同,我无法将它们与我的情况准确地联系起来。很抱歉再次问这个问题 我有以下XML文件(这只是它的第一部分),我需要将其转换为SQL Server表 我该怎么做呢?我是一个完全的初学者,但试图做一些大项目。我不太懂SQL,也完全不知道如何通过SQL server读取XML文件。我希望CodeType元素也作为一列,并反映相应的值 <ReferenceDataItems CodeType="AboriginalOrTorresStraitI

我知道这里很少有其他成员问过这个问题,但他们的需求略有不同,我无法将它们与我的情况准确地联系起来。很抱歉再次问这个问题

我有以下XML文件(这只是它的第一部分),我需要将其转换为SQL Server表

我该怎么做呢?我是一个完全的初学者,但试图做一些大项目。我不太懂SQL,也完全不知道如何通过SQL server读取XML文件。我希望CodeType元素也作为一列,并反映相应的值

<ReferenceDataItems CodeType="AboriginalOrTorresStraitIslanderOrigin">
  <Item>
    <CodeValue>NO</CodeValue>
    <CodeDescription>No</CodeDescription>
    <OrderNumber>1</OrderNumber>
  </Item>
  <Item>
    <Item>
      <CodeValue>TSI</CodeValue>
      <CodeDescription>Torres Strait Islander</CodeDescription>
      <OrderNumber>3</OrderNumber>
    </Item>
    <Item>
      <CodeValue>BOTH</CodeValue>
      <CodeDescription>Aboriginal and Torres Strait Islander</CodeDescription>
      <OrderNumber>4</OrderNumber>
    </Item>
    <Item>
      <CodeValue>NOTSTATED</CodeValue>
      <CodeDescription>Not stated/Inadequately described</CodeDescription>
      <OrderNumber>5</OrderNumber>
    </Item>
</ReferenceDataItems>
<ReferenceDataItems CodeType="AccommodationType">
  <Item>
    <CodeValue>BOARDING</CodeValue>
    <CodeDescription>Boarding house</CodeDescription>
    <OrderNumber>1</OrderNumber>
  </Item>
  <Item>
    <CodeValue>TRANSITION</CodeValue>
    <CodeDescription>Crisis, emergency or transition</CodeDescription>
    <OrderNumber>2</OrderNumber>
  </Item>
  <Item>
    <CodeValue>LIVINGUNIT</CodeValue>
    <CodeDescription>Independent living unit</CodeDescription>
    <OrderNumber>3</OrderNumber>
  </Item>
  <Item>
    <CodeValue>COMMUNITY</CodeValue>
    <CodeDescription>Indigenous community/settlement</CodeDescription>
    <OrderNumber>4</OrderNumber>
  </Item>
  <Item>
    <CodeValue>INSTITUTION</CodeValue>
    <CodeDescription>Institutional setting (i.e. residential aged care, hospital)</CodeDescription>
    <OrderNumber>5</OrderNumber>
  </Item>
  <Item>
    <CodeValue>CLIENTOWNED</CodeValue>
    <CodeDescription>Private residence - client or family owned/purchasing</CodeDescription>
    <OrderNumber>6</OrderNumber>
  </Item>
  <Item>
    <CodeValue>PRIVATERENTAL</CodeValue>
    <CodeDescription>Private residence - private rental</CodeDescription>
    <OrderNumber>7</OrderNumber>
  </Item>
  <Item>
    <CodeValue>PUBLICRENTAL</CodeValue>
    <CodeDescription>Private residence - public rental</CodeDescription>
    <OrderNumber>8</OrderNumber>
  </Item>
  <Item>
    <CodeValue>PUBLICSHELTER</CodeValue>
    <CodeDescription>Public shelter</CodeDescription>
    <OrderNumber>9</OrderNumber>
  </Item>
  <Item>
    <CodeValue>SUPPORTED</CodeValue>
    <CodeDescription>Supported accommodation</CodeDescription>
    <OrderNumber>10</OrderNumber>
  </Item>
  <Item>
    <CodeValue>NOTSTATED</CodeValue>
    <CodeDescription>Not stated</CodeDescription>
    <OrderNumber>11</OrderNumber>
  </Item>
  <Item>
    <CodeValue>OTHER</CodeValue>
    <CodeDescription>Other</CodeDescription>
    <OrderNumber>12</OrderNumber>
  </Item>
</ReferenceDataItems>

不
不
1.
TSI
托雷斯海峡岛民
3.
二者都
托雷斯海峡岛民
4.
未声明
未说明/描述不充分
5.
寄宿
寄宿酒店
1.
过渡
危机、紧急情况或过渡
2.
利文古尼特
独立生活单元
3.
社区
土著社区/定居点
4.
机构
机构设置(即住宿养老、医院)
5.
附属的
私人住宅-客户或家庭拥有/购买
6.
私人的
私人住宅-私人租赁
7.
公共租赁
私人住宅-公共租赁
8.
公共庇护所
公共庇护所
9
支持
辅助住宿
10
未声明
未说明
11
其他
其他
12

假设您的整个XML数据都在一个名为
@XML
的变量中,那么您可以使用此XQuery代码提取详细信息:

SELECT
    CodeType = XC.value('@CodeType', 'varchar(50)'),
    CodeValue = XC2.value('(CodeValue)[1]', 'varchar(100)'),
    CodeDescription = XC2.value('(CodeDescription)[1]', 'varchar(100)'),
    OrderNumber = XC2.value('(OrderNumber)[1]', 'int')
FROM
    @xml.nodes('/ReferenceDataItems') AS XT(XC)
CROSS APPLY
    XC.nodes('Item') AS XT2(XC2)
这将返回类似以下内容的数据集:


您想如何将此插入您的问题中不清楚的表中-您需要自己弄清楚…

非常感谢!首先,很抱歉,我不知道如何接受您对我的帖子所做的编辑。我按下了rollback,它变成了旧的post样式。抱歉,我刚才说我是新手。我应该运行SQL server并作为新查询启动此查询吗?我想把它们放在一个表调用‘ReferenceData’中,我想把XML文件的路径放在这里吗?('/ReferenceDataItems')@RandikaWijekoon:你不需要接受任何东西,只需让文章保持原样,就可以编辑,更具可读性。不要回滚…(1)您需要将XML加载到SQL Server变量中—为此,有大量的资源向您展示如何执行此操作。然后(2)您需要确保在
ReferenceData
表中有所有必要的列,然后(3)您可以使用
INSERT到dbo中。ReferenceData(code类型、code值、code描述、OrderNumber)选择……
(并使用上面的
SELECT
作为
INSERT
语句的源代码)非常感谢,马克!你是冠军!我打算手动键入数据:)。这节省了很多时间,我学到了一些新东西。非常感谢我的朋友!