我已经为此工作了一段时间。
DROP TABLE IF EXISTS XMLOpenXML
Create Table XMLOpenXML (XMLData XML)
INSERT INTO XMLOpenXML
SELECT '<rootTag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Parameter>
<Migrationsobjekt></Migrationsobjekt>
<Datenbankname>dav30</Datenbankname>
<StartZeitstempel>18.06.2019 09:30:05</StartZeitstempel>
</Parameter>
<Liste>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>01 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" />
<Bezeichnung3 xsi:nil="true" />
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>02 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 zeichen </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" />
<Bezeichnung3 xsi:nil="true" />
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>03 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 12312345 </Bezeichnung1>
<Bezeichnung2 xsi:nil="1" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="1" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="1" ></Vermerk1>
<Vermerk2 xsi:nil="1" ></Vermerk2>
<Vermerk3 xsi:nil="1" ></Vermerk3>
<Vermerk4 xsi:nil="1" ></Vermerk4>
<Vermerk5 xsi:nil="1" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>05 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 86 </Bezeichnung1>
<Bezeichnung2 xsi:nil="1" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="1" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="1" ></Vermerk1>
<Vermerk2 xsi:nil="1" ></Vermerk2>
<Vermerk3 xsi:nil="1" ></Vermerk3>
<Vermerk4 xsi:nil="1" ></Vermerk4>
<Vermerk5 xsi:nil="1" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>06 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 3455 </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="true" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>07 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 98765 </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="true" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>08 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 Bezeichnungs 123123 </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="true" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>09 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 2432343 </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="true" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>10 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 zeichen </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="true" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>11 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 bezeichen </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="true" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>12 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 12345 </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="true" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>13 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 zeich </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="true" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>15 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 sdsddsd </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="true" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>20 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 dedaz </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="true" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>21 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 gt </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="true" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>25 </Schluessel>
<Bezeichnung1>Bezeichnungs 123123 zttr </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="true" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>27 </Schluessel>
<Bezeichnung1>fdsBezeichnungs 123123 </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="true" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>29 </Schluessel>
<Bezeichnung1>1314Bezeichnungs 123123 </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="true" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
<plan>
<Planjahr>2018</Planjahr>
<Kennzeichen>00 </Kennzeichen>
<Schluessel>30 </Schluessel>
<Bezeichnung1>234rwBezeichnungs 123123 </Bezeichnung1>
<Bezeichnung2 xsi:nil="true" ></Bezeichnung2>
<Bezeichnung3 xsi:nil="true" ></Bezeichnung3>
<Status>1</Status>
<Vermerk1 xsi:nil="true" ></Vermerk1>
<Vermerk2 xsi:nil="true" ></Vermerk2>
<Vermerk3 xsi:nil="true" ></Vermerk3>
<Vermerk4 xsi:nil="true" ></Vermerk4>
<Vermerk5 xsi:nil="true" ></Vermerk5>
</plan>
</Liste>
</rootTag>'
/****** Object: Table [dbo].[IMP_PLEPL_KO] Script Date: 22.11.2019 16:14:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP TABLE IF EXISTS [dbo].[IMP_]
CREATE TABLE [dbo].[IMP_](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Planjahr] [int] NULL,
[Kennzeichen] [nvarchar](max) NULL,
[Bezeichnung1] [nvarchar](max) NULL,
[Bezeichnung2] [nvarchar](max) NULL,
[Bezeichnung3] [nvarchar](max) NULL,
[Status] [nvarchar](max) NULL,
[Vermerk1] [int] NULL,
[Vermerk2] [int] NULL,
[Vermerk3] [int] NULL,
[Vermerk4] [int] NULL,
[Vermerk5] [int] NULL,
[Schluessel] [nvarchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
DECLARE @XML AS XML, @hDoc AS INT, @SQL NVARCHAR (MAX)
;WITH XMLNAMESPACES (DEFAULT 'http://www.w3.org/2001/XMLSchema-instance')
SELECT @XML = XMLData FROM XMLOpenXML
EXEC sp_xml_preparedocument @hDoc OUTPUT, @XML, '<rootTag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>'
INSERT INTO [dbo].[IMP_] (
[Planjahr]
,[Kennzeichen]
,[Bezeichnung1]
,[Bezeichnung2]
,[Bezeichnung3]
,[Status]
,[Vermerk1]
,[Vermerk2]
,[Vermerk3]
,[Vermerk4]
,[Vermerk5]
,[Schluessel])
SELECT *
FROM OPENXML(@hDoc, '/rootTag/Liste/plan', 1)
WITH
(
Planjahr int ,
Kennzeichen nvarchar(max) ,
Bezeichnung1 nvarchar(max) ,
Bezeichnung2 nvarchar(max) ,
Bezeichnung3 nvarchar(max) ,
Status nvarchar(max) ,
Vermerk1 int ,
Vermerk2 int ,
Vermerk3 int ,
Vermerk4 int ,
Vermerk5 int ,
Schluessel nvarchar(max)
)
EXEC sp_xml_removedocument @hDoc
GO
如果更改参数-
FROM OPENXML(@hDoc, '/rootTag/Liste/plan', 1)
至FROM OPENXML(@hDoc, '/rootTag/Liste/plan', 2)
表中填充了正确的内容值,BUT用0代替[int]对象为NULL,用“”代替[nvarchar]
对象为NULL
我的方法有什么问题?我想用XML内容填充我的表,如果有xsi:nil attritube
,则应该用NULL填充。
谢谢,ITsab