IF EXISTS (SELECT 1
FROM sysobjects
WHERE name='pd_invoice_save'
AND type ='P')
DROP PROC pd_invoice_save
go
CREATE PROC pd_invoice_save
(
@TradeType VARCHAR(16), --10挂号 20门诊 30住院
@TradeID VARCHAR(64),
@XMLValue XML
)
WITH ENCRYPTION
AS
DECLARE @ParaTable TABLE
(
binvkind varchar(200) ,-- 数值 2 0 varchar(200) ,--专用发票、2 –普通发票、11 varchar(200) ,--货运发票、41 varchar(200) ,--卷票普通发票、51 varchar(200) ,--电子普通发票
binvcode varchar(200) ,--字符 10 发票代码
binvnr varchar(200) ,--数值 发票号码
binvdate varchar(200) ,--日期 开票日期
bmachinenr varchar(200) --字符 3 开票机号
)
;WITH XMLNAMESPACES(DEFAULT 'http://www.XXXXXX.com.cn') --有命名空间的,在这里带上命名空间
INSERT INTO @ParaTable
(
binvkind , --数值 2 0 , --专用发票、2 –普通发票、11 , --货运发票、41 , --卷票普通发票、51 , --电子普通发票
binvcode , --字符 10 发票代码
binvnr , --数值 发票号码
binvdate , --日期 开票日期
bmachinenr --字符 3 开票机号
)
SELECT T.d.value('(binvkind/value/text())[1]','varchar(256)') AS binvkind, --节点里面还可以在嵌套节点
T.d.value('(binvcode/text())[1]','varchar(256)') AS binvcode,
T.d.value('(binvnr/text())[1]','varchar(256)') AS binvnr ,
T.d.value('(binvdate/text())[1]','varchar(256)') AS binvdate,
T.d.value('(bmachinenr/text())[1]','varchar(256)') AS bmachinenr
FROM @XMLValue.nodes('siiscmd/sendbackinv/sendbackinvrecord/sendbackinvrecordhead') AS T(d)
SELECT * FROM @ParaTable