范例 XML 档案格式内容如下,想抓 XML 几个栏位的资料写入 table 中,SQL 语法如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 函 SYSTEM "104_2_utf8.dtd" [
<!ENTITY 表单 SYSTEM "0001132A00.sw" NDATA DI>
<!NOTATION DI SYSTEM "">
<!NOTATION _X SYSTEM "">
]>
<函>
<发文机关>
<全衔>财团法人中华民国xxx基金会</全衔>
<机关代码>XC12345678</机关代码>
</发文机关>
<函类别 代码="函"/>
<地址>10066台北市中正区南海路x号x楼</地址>
<联络方式>承办人:XXX</联络方式>
<联络方式>电话:02-12345678分机123</联络方式>
<联络方式>电子信箱:[email protected]</联络方式>
<受文者>
<交换表 交换表单="表单">如正副本行文单位</交换表>
</受文者>
<发文日期>
<年月日>中华民国109年9月8日</年月日>
</发文日期>
<发文字号>
<字>证基</字>
<文号>
<年度>109</年度>
<流水号>1234567</流水号>
</文号>
</发文字号>
<速别 代码="普通件"/>
<密等及解密条件或保密期限>
<密等/>
<解密条件或保密期限></解密条件或保密期限>
</密等及解密条件或保密期限>
<附件>
<文字>无</文字>
</附件>
<主旨>
<文字>台湾xxx交易所委托本基金会办理「上市柜公司xxx研讨会」,敬邀贵公司董事、监察人、公司治理主管与高阶主管参加,请查照。</文字>
</主旨>
<段落 段名="说明:">
<文字></文字>
<条列 序号="一、">
<文字>为协助上市柜公司如何有效运用衍生性商品避险以因应系统性风险、汇率风险及原物料成本波动风险等,使企业高层了解衍生性商品避险交易之重要。台湾期货交易所委托本基金会办理本活动,全程参与之董监事及公司治理主管於活动结束後提供进修时数认证,每家上市上柜及兴柜公司至多得报名三位。</文字>
</条列>
<条列 序号="二、">
<文字>办理时间地点如下:</文字>
<条列 序号="(一)">
<文字>时间:109年10月10日(周三)下午2时</文字>
</条列>
<条列 序号="(二)">
<文字>地点:xxx会议中心感恩厅(台北市忠孝东路x段x号x楼,台北市忠孝东路与建国南路交叉口-xx大楼x楼)</文字>
</条列>
</条列>
<条列 序号="三、">
<文字>本活动请至本基会网站(https://www.xxx.org.tw)报名,额满为止,敬请踊跃报名参加。</文字>
</条列>
</段落>
<正本>
<全衔>上市上柜公司(含兴柜)</全衔>
</正本>
<副本>
<全衔>台湾xx股份有限公司</全衔>
</副本>
</函>
--新增要将 XML 读到资料写入用的 table
CREATE TABLE [dbo].[OD](
[ODid] [nvarchar](20) NOT NULL,
[ODdate] [nvarchar](20) NULL,
[ODgov] [nvarchar](50) NULL,
[ODtopic] [nvarchar](100) NULL,
CONSTRAINT [PK_OD] PRIMARY KEY CLUSTERED
(
[ODid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
--读取 XML 档写入 MSSQL table
insert into OD ( ODid, ODdate, ODgov, ODtopic )
select
ODid.文号.query('年度').value('.', 'VARCHAR(20)') + ODid.文号.query('流水号').value('.', 'VARCHAR(20)') + ODid.文号.query('支号').value('.', 'VARCHAR(20)'),
ODdate.发文日期.query('年月日').value('.', 'VARCHAR(20)'),
ODgov.发文机关.query('全衔').value('.', 'VARCHAR(50)'),
ODtopic.主旨.query('文字').value('.', 'VARCHAR(100)')
from (select CONVERT(XML, MY_XML, 2)
from OPENROWSET(BULK 'C:\test.xml', SINGLE_BLOB) as T(MY_XML)) as T(MY_XML)
cross apply MY_XML.nodes('函/发文字号/文号') as ODid (文号)
cross apply MY_XML.nodes('函/发文日期') as ODdate (发文日期)
cross apply MY_XML.nodes('函/发文机关') as ODgov (发文机关)
cross apply MY_XML.nodes('函/主旨') as ODtopic (主旨);
昨天介绍强大的Netdata资源显示工具,在openwrt 的opkg套件库中,还有满车类似的功能套...
策略模式 Strategy Pattern 策略模式,可以让物件在运作时更改其行为或算法,你可以透...
选择器(Selector)是指用来选择HTML中,哪些内容要套上的样式。 依据对象的不同有不同的写法...
题外话 补充昨天忘记下的结论:不管要绘制的图案多大,都建议画(储存)在一个和原图一样大的canvas...
PVE 虚拟机 Ubuntu Server 20.04 服务器版本 安装 LibreNMS PROX...