问题描述
我有一个巨大的xml文件要加载到oracle表中。我已经将XML数据加载到CLOB对象中。现在,我想从cob中检索xml数据,将其放入维护关系的多个表。你能不能发表一个例子来检索数据,并填充到数据库表中。我想在一个表中添加LEI ,在另一个表中添加实体,实体合法地址和总部地址等。我还想维护合法地址和总部地址子节点属于LEI的关系。
我的表是
从CLI_XML中选择*
LOB_FILE XML_CONTENT
1 <值错误>
从LEI_XML中选择dbms_lob.get_content(xml_content)
DBMS_LOB.GETLENGTH(XML_CONTENT
621503729
XML示例为:
http://www.leiroc.org/data/schema/leidata/2014"xmlns:clei="http://ns.c-lei.org/leidata/1"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
2016-03-22T04:10:23-05:00
52990034RLKT0WSSOAM90
2016-02-21T04:00:20-06:00
https://www.ceireg.de/download/?download.dumptype=full&download.dumpdate:2=2016&download.dumpdate:1=02&download.dumpdate:0=21
2016-02-21T11:00:10.885+01:00
39120001KULK7200U106
1313
1313
真
2016-03-22T04:00:30-05:00
http://www.leichina.org/webcei/LEIDataServlet?type=all
2016-03-22T04:00:00.016+08:00
300300KDiz11PV2GH547
201
201
真
2016-03-11T04:00:32-06:00
http://www.centraldepository.cz/LEI/LEI_20160310_full.xml
2016-03-10T00:00:00+01:00
315700LK78Z7C0WMIL03
6881
6881
真
2015-12-10T04:01:19-06:00
https://www.lei.mjusticia.gob.es/pgdescargaintxmls?id=11863&AxpsAutoDetectCookieSupport=1
2015-12-09T23:59:59.999+01:00
959800R2X69K6Y6MX775
12796
12796
真
2015-11-16T04:01:10-06:00
https://www.ytj.fi/tiedostolataus.aspx?date=20151115
2015-11-15T00:00:00
743700OO8O2N3TQKJC81
2163
2163
真
2015-11-18T04:01:33-06:00
https://www.geiportal.org/customer/download_xml.php?file=GEI_Full_20151118_cf1.zip
2015-11-18T01:30:08
5299000J2N45DDNE4Y28
62648
62637
10
1
真
http://www.leiroc.org/data/schema/leidata/2014" >
39120001CK4NXMUXLH16
<实体>
Chorus CleanTech有限公司& Co.太阳能公园Vilseck KG
<法律地址>
<线路1>教授-梅塞施米特-斯特拉△e 3线路1>
<城市>新比堡城市>
<地区>DE-BY地区>
<国家>DE国家>
<邮政代码>85579邮政代码>
法律地址>
<总部地址>
<线路1>教授-梅塞施米特-斯特拉△e 3线路1>
<城市>新比堡城市>
<地区>DE-BY地区>
<国家>DE国家>
<邮政代码>85579邮政代码>
总部地址>
HRA 97903
<法律管辖>DE法律管辖>
Commanditgesellschaft
活动
实体>
<注册>
<初始注册日期>2014-02-14T15:49:16.075+01:00初始注册日期>
<最后更新日期>2016-02-14T16:03:02.885+01:00最后更新日期>
<注册状态> ISSUED注册状态>
<下一次续订日期>2017-02-14T15:49:16.75+01:00下一次续订日期>
<管理LOU>39120001KULK7200U106管理LOU>
<验证源>完全_CORROBOED验证源>
注册>
http://www.leiroc.org/data/schema/leidata/2014" >
39120001NUMDHGMNO67
<实体>
SAN马蒂诺能源DI合唱团太阳能5.SRL & CO. SAS
<法律地址>
<线路1> ANello NORD/Nordring 25线路1>
<城市>布鲁尼科/布鲁内克(BZ)城市>
..........
There is a xsd file along with xml file if it can be used to load the xml data into tables. The XSD file is
http://www.w3.org/2001/XMLSchema"
元素窗体默认值="限定"
目标名称空间="http://www.leiroc.org/data/schema/leidata/2014"
xmlns:lei="http://www.leiroc.org/data/schema/leidata/2014" >
http://www.w3.org/XML/1998/namespace"模式位置="http://www.w3.org/2001/xml.xsd"/ >
名称空间="##目标名称空间"/>
名称空间="##目标名称空间"/>
所有枚举类型都通过接受任何在架构级别有效的字符串来提供向前兼容性。-->
版本1.0的合法值以1.0后缀的类型表示,该类型与xs :字符串联合到-->
形成完整的枚举类型。-->
我的表是
从CLI_XML中选择*
LOB_FILE XML_CONTENT
1 <值错误>
从LEI_XML中选择dbms_lob.get_content(xml_content)
DBMS_LOB.GETLENGTH(XML_CONTENT
621503729
XML示例为:
<实体>
<法律地址>
<线路1>教授-梅塞施米特-斯特拉△e 3线路1>
<城市>新比堡城市>
<地区>DE-BY地区>
<国家>DE国家>
<邮政代码>85579邮政代码>
法律地址>
<总部地址>
<线路1>教授-梅塞施米特-斯特拉△e 3线路1>
<城市>新比堡城市>
<地区>DE-BY地区>
<国家>DE国家>
<邮政代码>85579邮政代码>
总部地址>
<法律管辖>DE法律管辖>
实体>
<注册>
<初始注册日期>2014-02-14T15:49:16.075+01:00初始注册日期>
<最后更新日期>2016-02-14T16:03:02.885+01:00最后更新日期>
<注册状态> ISSUED注册状态>
<下一次续订日期>2017-02-14T15:49:16.75+01:00下一次续订日期>
<管理LOU>39120001KULK7200U106管理LOU>
<验证源>完全_CORROBOED验证源>
注册>
<实体>
<法律地址>
<线路1> ANello NORD/Nordring 25线路1>
<城市>布鲁尼科/布鲁内克(BZ)城市>
..........
There is a xsd file along with xml file if it can be used to load the xml data into tables. The XSD file is
元素窗体默认值="限定"
目标名称空间="http://www.leiroc.org/data/schema/leidata/2014"
xmlns:lei="http://www.leiroc.org/data/schema/leidata/2014" >
所有枚举类型都通过接受任何在架构级别有效的字符串来提供向前兼容性。-->
版本1.0的合法值以1.0后缀的类型表示,该类型与xs :字符串联合到-->
形成完整的枚举类型。-->
专家解答
好吧,你有一些选择
1)您可以让数据库在对象关系表中为您执行此操作
http://docs.oracle.com/cd/E11882_01/appdev.112/e23094/xdb05sto.htm#ADXDB4482
使用“结构化存储”。这使用对象关系类型来保留层次结构。不知道你是不是想这样。
2)您可以让数据库为您做,但您需要创建真正的关系结构。您可以为此使用DBMS_XMLSTORE。请参见http://www.gokhanatil.com/2009/01/how-to-import-data-from-xml.html作为一个例子
3)如果您完全控制提取到真正的关系结构,则使用XML TABLE语法挖掘层次结构和提取属性。请参见
https://asktom.oracle.com/pls/apex/f?p=100:11:::NO:RP:P11_QUESTION_ID:9523447800346871855
一个简单的例子。
希望这个能帮上忙。
1)您可以让数据库在对象关系表中为您执行此操作
http://docs.oracle.com/cd/E11882_01/appdev.112/e23094/xdb05sto.htm#ADXDB4482
使用“结构化存储”。这使用对象关系类型来保留层次结构。不知道你是不是想这样。
2)您可以让数据库为您做,但您需要创建真正的关系结构。您可以为此使用DBMS_XMLSTORE。请参见http://www.gokhanatil.com/2009/01/how-to-import-data-from-xml.html作为一个例子
3)如果您完全控制提取到真正的关系结构,则使用XML TABLE语法挖掘层次结构和提取属性。请参见
https://asktom.oracle.com/pls/apex/f?p=100:11:::NO:RP:P11_QUESTION_ID:9523447800346871855
一个简单的例子。
希望这个能帮上忙。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




