You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

APEX18中apex_data_parser.parse的p_row_selector参数设置咨询

在APEX 18中解析XML并将子标签拆分为独立列的解决方案

可以实现将子标签拆分为独立列的需求,核心是精准设置p_row_selector参数,使其指向每个包含目标子标签的独立数据行节点,具体操作如下:

1. 匹配XML结构调整路径

假设你的XML结构类似(需对应实际结构修改节点名):

return (<Document>
  <group_1>
    <group_1_2>
      <DataItem>
        <Id>1001</Id>
        <Acct>USR0001</Acct>
        <Ownr>Alice</Ownr>
        <Bal>5000</Bal>
      </DataItem>
      <DataItem>
        <Id>1002</Id>
        <Acct>USR0002</Acct>
        <Ownr>Bob</Ownr>
        <Bal>3000</Bal>
      </DataItem>
    </group_1_2>
  </group_1>
</Document>
)

2. 正确设置p_row_selector

将p_row_selector设置为指向单个数据行的父节点(例中为/Document/group_1/group_1_2/DataItem),这样每个DataItem节点会被解析为一行,其下的Id、Acct、Ownr、Bal子标签会自动生成独立列。

3. 完整查询示例

SELECT *
FROM TABLE(apex_data_parser.parse(
    p_content => (SELECT blob_content FROM apex_application_files WHERE name = :P1_NEW),
    p_file_type => apex_data_parser.c_file_type_xml,
    p_row_selector => '/Document/group_1/group_1_2/DataItem'
));

关键注意事项

  • 若group_1_2下直接重复出现包含目标字段的节点(无统一父节点),可将p_row_selector设为/Document/group_1/group_1_2/*,但需确保所有子节点结构完全一致。
  • 必须保证p_row_selector路径精确到单个数据行的节点层级,不要直接选择group_1_2节点,否则所有子标签会被合并为一行的多个字段,无法拆分为多行独立数据。

内容的提问来源于stack exchange,提问作者Oguen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 01:05:10