【问题标题】:Parsing XML to Database Table Using PLSQL使用 PLSQL 将 XML 解析为数据库表
【发布时间】:2020-06-14 03:59:20
【问题描述】:

谁能建议如何使用 plsql 将以下 XML 解析为所需的数据库表?谢谢。

<Label name=“Case”>C12</Label>
<Label name=“Route”>
    <String name=“PName”>UE21010</String>
    <Integer name=“Operation”>12345</Integer>
    <Label name=“Process”>
        <String name=“PNumber”>W98765</String>
        <String name=“Recipe”>Burn101</String>
    </Label>
</Label>
<Label name=“User”>
    <String name=“EmpNo”>E1234</String>
    <String name=“Name”>John</String>
</Label>

数据库表中的所需输出:

+-----------------------+---------+
| Item                  | Value   |
+-----------------------+---------+
| Case                  | C12     |
+-----------------------+---------+
| Route.PName           | UE21010 |
+-----------------------+---------+
| Route.Operation       | 12345   |
+-----------------------+---------+
| Route.Process.PNumber | W98765  |
+-----------------------+---------+
| Route.Process.Recipe  | Burn101 |
+-----------------------+---------+
| User.EmpNo            | E1234   |
+-----------------------+---------+
| User.Name             | John    |
+-----------------------+---------+

【问题讨论】:

  • 请参阅Why should I provide a Minimal Reproducible Example for a very simple SQL query?。请不要发布代码或表格结构的图像。
  • 嗨,对不起,我是新来的,不知道如何显示输出表,并认为使用图像将是我所知道的最好的。主要目标只是试图在这里清楚地提出我的问题。
  • 如果您阅读我给您的链接,您会注意到有一个“ASCII 数据表生成器工具”。这可以帮助您提供可以在此处使用的表格。
  • 谢谢@Scratte,我已经修改了我的查询。

标签: xml plsql


【解决方案1】:

您是否尝试过类似的方法:

DECLARE
v_xml xmltype;
BEGIN
SELECT XMLTYPE('...xml here...') INTO v_xml FROM DUAL;

INSERT INTO table (Case,Route.PName,...) VALUES
SELECT EXTRACT(v_xml, '//Label[@name='Case']'), EXTRACT(v_xml, '//Label[@name='Route']'),...
FROM DUAL
END;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 2023-03-24
    • 2015-06-30
    • 1970-01-01
    相关资源
    最近更新 更多